Персонаж в Unity2D проходит через препятствия
Делаю top down 2D игру, создал персонажа, добавил препятствия, но сколько чего не пробовал, персонаж проходит через них.
И коллайдеры висят, и Rigidbody, и у игрока ставил dynamic, и у них, и на одном слое они стоят.
Может что-то в скрипте не так? Скрипт я скопировал из инета, но перепроверил несколько раз, вроде.
P.S Помогло решение убиранием галочки, но, хочу добавить для остальных, если у вас после этого персонаж начнет крутиться при столкновении с объектами, просто заморозьте движение по оси z в Rigidbody2D
using UnityEngine
[RequireComponent(typeof(Rigidbody2D))]
public class player_move : MonoBehaviour{
new Rigidbody2D rigidbody2D;
public Animator anim;
public float movementSpeed;
void Awake()
{
rigidbody2D = GetComponent<Rigidbody2D>();
rigidbody2D.isKinematic = false;
}
void FixedUpdate()
{
Vector2 targetVelocity = new Vector2(Input.GetAxisRaw("Horizontal"), Input.GetAxisRaw("Vertical"));
targetVelocity = targetVelocity.normalized;
anim.SetFloat("Horizontal", targetVelocity.x);
anim.SetFloat("Vertical", targetVelocity.y);
anim.SetFloat("Magnitude", targetVelocity.magnitude);
Move(targetVelocity);
}
void Move(Vector2 targetVelocity)
{
rigidbody2D.velocity = (targetVelocity * movementSpeed) * Time.deltaTime;
}
}
Источник: Stack Overflow на русском