0
所以我在Unity 2D中製作了一個Crossy Road克隆,並且在第34行發現了一個錯誤。
我不確定我錯過了什麼,但是我需要另一個視角。 具體而言,我對這個說法得到一個錯誤:Unity2D Vector2不起作用
if (transform.position != new Vector2(curPosition.x, transform.position.y) + nextDir)
,一切都標記爲紅色。
public class PlayerController : MonoBehaviour
{
public Vector2 nextDir;
public float jumpForce = 100;
public float speed = 5;
public float speedRot = 100;
public float rotationOffset;
Rigidbody rb;
public Vector2 curPosition;
void Start()
{
rb = GetComponent<Rigidbody>();
curPosition = transform.position;
}
void Update()
{
if (transform.position != new Vector2(curPosition.x, transform.position.y) + nextDir)
{
transform.position = Vector2.MoveTowards(transform.position, new Vector2(curPosition.x, transform.position.y) + nextDir, speed * Time.deltaTime);
}
else
{
nextDir = Vector2.zero;
curPosition = transform.position;
curPosition.x = Mathf.Round(curPosition.x);
curPosition.y = Mathf.Round(curPosition.y);
if (Input.GetAxisRaw("Horizontal") != 0)
{
nextDir.x = -Input.GetAxisRaw("Horizontal");
Move();
}
else if (Input.GetAxisRaw("Vertical") != 0)
{
nextDir.y = Input.GetAxisRaw("Vertical");
Move();
}
}
}
void Move()
{
rb.AddForce(0, jumpForce, 0);
}
}
複製並粘貼您收到的錯誤。 –
@ m.rogalski「Character」對象沒有附加「rigidbody」 –
在類的頂部添加這個[[RequireComponent(typeof(Rigidbody2D))]''。像這樣:'[RequireComponent(typeof(Rigidbody2D))] public class ...' –