Я написал сценарий в C# для движения символов с использованием скорости Rigidbody2D. Однако иногда, когда я пытаюсь двигаться, мой персонаж перемещается, а затем внезапно замерзает и не будет двигаться вперед. Только назад. Я проверил коллайдеры и все они равны и привязаны. Я пробовал даже AddForce, но он все еще зависает.Unity Rigidbody2D Velocity Sudden Freeze
using UnityEngine;
using System.Collections;
public class CharacterController2D : MonoBehaviour {
[SerializeField]
float speed = 5;
[SerializeField]
float jumpForce = 500;
[SerializeField]
LayerMask whatisground;
[SerializeField]
bool isGrounded = false;
Transform groundCheck;
private Rigidbody2D rb2d;
// Use this for initialization
void Start() {
rb2d = gameObject.GetComponent<Rigidbody2D>();
groundCheck = gameObject.transform.GetChild (0);
}
void FixedUpdate(){
float hor = Input.GetAxis ("Horizontal");
rb2d.AddForce (new Vector2 (hor * speed,0));
//rb2d.velocity = new Vector2(hor*speed,rb2d.velocity.y);
isGrounded = Physics2D.OverlapCircle (groundCheck.position, 0.15F);
}
// Update is called once per frame
void Update() {
}
}
Вы пробовали указать forcemode? 'rigidbody2D.AddForce (новый Vector2 (hor * speed, 0), ForceMode2D.Impulse);' – Shakra
Нет, но я не думаю, что это действительно имеет значение. –