我尝试了此代码,但无法正常工作。 编辑:LookAt使GameObject不可见
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EnemyPoint : MonoBehaviour {
public float offset;
public Transform target;
private void Update()
{
Vector2 difference = target.position - transform.position;
float rotZ = Mathf.Atan(difference.y) * Mathf.Rad2Deg;
transform.rotation = Quaternion.Euler(0f, 0f, rotZ + offset);
}
}
答案 0 :(得分:3)
您可以使用LookAt。
旋转变换,使
forward
向量指向target
的当前位置。
transform.LookAt(target);
将其简单地放置在对象A上,并在target
字段中拖放其他任何对象B→对象A的forward
向量将始终指向objectB
。
另一种覆盖方式也将世界位置设为Vector3
,因此您也可以使用
transform.LookAt(target.position);
基本上会做同样的事情。
如果您需要另一个指向目标的轴,则仍然可以使用LookAt
,然后使用Rotate
。例如。为了不使对象的forward
而是up
向量指向目标,您可以使用
transform.LookAt(target);
transform.Rotate(Vector3.right * 90);