我希望我的对象指向播放器 2d unity,我已经尝试过这段代码,但它似乎给出了不准确的结果
Vector3 playerPos = GameObject.FindWithTag("Player").transform.position;
Vector2 enemyDirection = (playerPos - transform.position);
float angle = Mathf.Atan2( enemyDirection.y, enemyDirection.x ) * Mathf.Rad2Deg;
transform.Rotate( 0f,0f, angle);
如果我没听错,
Transform.LookAt
正是您要找的东西:)
你可以尝试这样的事情:
GameObject player = GameObject.FindWithTag("Player");
transform.LookAt(player.transform).
这样,当前的
transform
以其player
向量朝向forward
。
另一个注意事项:如果可以,请通过检查器引用您的播放器,而不是通过
GameObject.FindWithTag("")
搜索它。
从您的游戏是 2D 的地方来看,轴看起来像是朝向右侧。因此,下面的代码解决了这个问题。
Vector2 enemyDirection = (playerPos - transform.position);
transform.right = enemyDirection.normalized;