幾天來,我一直在嘗試學習如何使用 Raycast2D,但我無法做到,我希望我的 raycast 能夠檢測到它何時與 NPC 碰撞以制作某種互動系統,但盡我最大的努力我設法取得的進展是光線投射在它應該的方向而不是距離上作業,它總是在螢屏上報告它已經找到了極限貼圖對撞機,即使我旋轉自己以檢測任何其他對撞機,首先非常感謝您的閱讀和您的努力!<3
private void Update() {
movimiento();
if (posesion) {
Debug.Log("ENCONTRADO");
}
hit = Physics2D.Raycast(transform.position, transform.position direccion2 * 500, 0);
Debug.DrawRay(transform.position, transform.position direccion2 * 500, Color.red);
if (true) {
Debug.Log(hit.transform.name);
}
if (hit.transform.tag == "NPC" && !posesion) {
Debug.Log("Estamos dentro");
if (Input.GetButtonDown("Fire2")) {
timer = Time.time;
}
if (Input.GetButtonUp("Fire2")) {
timerB = Time.time;
if (timerB - timer >= 3) {
timer = 0;
timerB = 0;
hit.transform.gameObject.GetComponent < NPC > ().turnPosession();
startPossesion();
}
}
}
}
代碼的第一行
[SerializeField]
private float velocidadMovimiento;
[SerializeField]
private Vector2 direccion;
private Vector3 direccion2;
private Rigidbody2D rb2D;
private float movimientoX;
private float movimientoY;
private Animator animator;
private bool posesion;
private float timer, timerB;
private RaycastHit2D hit;
private void Start() {
animator = GetComponent < Animator > ();
rb2D = GetComponent < Rigidbody2D > ();
posesion = false;
timer = 0;
timerB = 0;
}
private void movimiento() {
movimientoY = Input.GetAxisRaw("Horizontal");
movimientoX = Input.GetAxisRaw("Vertical");
animator.SetFloat("MovimientoX", movimientoX);
animator.SetFloat("MovimientoY", movimientoY);
direccion = new Vector2(
Input.GetAxisRaw("Horizontal"),
Input.GetAxisRaw("Vertical")
).normalized;
if (movimientoX != 0 || movimientoY != 0) {
direccion2 = new Vector3(
Input.GetAxisRaw("Horizontal"),
Input.GetAxisRaw("Vertical"), 0
).normalized;
animator.SetFloat("UltimoX", movimientoX);
animator.SetFloat("UltimoY", movimientoY);
}
}
uj5u.com熱心網友回復:
這部分是錯誤的:
hit = Physics2D.Raycast(transform.position, transform.position direccion2 * 500, 0);
它應該是:
hit = Physics2D.Raycast(transform.position, direccion2, 500);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/521519.html
下一篇:C#協程重復特定部分?
