Ich schrieb ein Skript in C# für die Bewegung von Charakter mit Rigidbody2D velocity.Jedoch manchmal, wenn ich versuche zu bewegen, mein Charakter bewegt sich dann plötzlich friert und nicht vorwärts.Nur rückwärts. Ich überprüfte die Collider und sie sind alle gleich und geschnappt. Ich habe sogar AddForce versucht, aber es friert immer noch.Einheit 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() {
}
}
Haben Sie versucht, forcemode anzugeben? 'rigidbody2D.AddForce (neuer Vector2 (hor * speed, 0), ForceMode2D.Impulse);' – Shakra
Nein, aber ich glaube nicht, dass es wirklich wichtig ist. –