![](/img/trans.png)
[英]How can I rotate 20 degrees off of a Vector2 direction in unity2d?
[英]Unity2D Vector2 does not work
所以我在Unity 2D中制作了Crossy Road克隆,在第34行出現錯誤。
我不確定我錯過了什么,但我需要另一個角度。 具體來說,我在此語句上遇到錯誤:
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);
}
}
可以通過在PlayerController
頂部添加RequireComponent
屬性來解決第一個錯誤(有關缺少Rigidbody2D
組件的問題):
[RequireComponent(typeof(Rigidbody2D)]
public class PlayerController : MonoBehaviour
{
// rest of your code
而您正在嘗試將3軸的對象與2軸的對象進行比較
void Update()
{
// here you're trying to compare Vector3 ( transform.position )
// to Vector2, (3 axis with 2 axis)
//if (transform.position != new Vector2(curPosition.x, transform.position.y) + nextDir)
// change it to this
Vector2 cmp = new Vector2(curPosition.x, transform.position.y) + nextDir;
if(cmp[0] != transform.position[0] || cmp[1] != transform.position[1])
{
transform.position = Vector2.MoveTowards(transform.position, new Vector2(curPosition.x, transform.position.y) + nextDir, speed * Time.deltaTime);
}
// rest of the update's body
}
// rest of your code ...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.