,My 16x36 character collision act like 16x16
I'm a beginner in unity, so I'm making a 2d top down rpg game and I'm copyidng the same scripts that the guy in the video wrote. The problem is; he's character is 16x16 and my character is 16x36. the game is ignores my Box collider 2d size and my character collides with walls he shouldn't collides and doesn't collides with walls he should. but if I replace my character with another 16x16 character or move all collider objects up one sprite the game works fine but I don't want to do that. I will leave the code of my character below
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour
{
private BoxCollider2D boxCollider;
private Vector3 moveDelta;
private RaycastHit2D hit;
private void Start()
{
boxCollider = GetComponent<BoxCollider2D>();
}
private void FixedUpdate()
{
float x = Input.GetAxisRaw("Horizontal");
float y = Input.GetAxisRaw("Vertical");
//Reset moveDelta
moveDelta = new Vector3(x, y, 0);
// Swap sprite direction, wether you're going right or left
if (moveDelta.x > 0)
transform.localScale = Vector3.one;
else if (moveDelta.x < 0)
transform.localScale = new Vector3(-1, 1, 1);
// Make sure we can move in this direction, by casting a box there first, if the box returns null, we're free to move
hit = Physics2D.BoxCast(transform.position, boxCollider.size, 0, new Vector2(0, moveDelta.y), Mathf.Abs(moveDelta.y * Time.deltaTime), LayerMask.GetMask("Actor", "Blocking"));
if(hit.collider == null)
{
// Make this fox move
transform.Translate(0, moveDelta.y * Time.deltaTime,0);
}
hit = Physics2D.BoxCast(transform.position, boxCollider.size, 0, new Vector2(moveDelta.x,0), Mathf.Abs(moveDelta.x * Time.deltaTime), LayerMask.GetMask("Actor", "Blocking"));
if (hit.collider == null)
{
// Make this fox move
transform.Translate(moveDelta.x * Time.deltaTime, 0, 0);
}
}
}
I'm a new user unity, because of that I will be very happy if you write the code that I need to write.
Answer by SpookyMookey36 · Dec 05, 2021 at 06:19 PM
I changed my code with Brackey's code but the problem is still going on. I have no idea what the problem is.
Your answer
Follow this Question
Related Questions
Constant Player Spinning to the left. 1 Answer
Complete character design/animation/control tutorial 0 Answers
How to flip my character with this script 0 Answers
My Character dosen´t move 0 Answers