如何将物体指向某个方向

问题描述 投票:0回答:2

我希望我的对象指向播放器 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);
c# unity3d
2个回答
0
投票

如果我没听错,

Transform.LookAt
正是您要找的东西:)

你可以尝试这样的事情:

GameObject player = GameObject.FindWithTag("Player");

transform.LookAt(player.transform).

这样,当前的

transform
以其
player
向量朝向
forward

另一个注意事项:如果可以,请通过检查器引用您的播放器,而不是通过

GameObject.FindWithTag("")
搜索它。


0
投票

从您的游戏是 2D 的地方来看,轴看起来像是朝向右侧。因此,下面的代码解决了这个问题。

Vector2  enemyDirection = (playerPos - transform.position);
transform.right = enemyDirection.normalized;
© www.soinside.com 2019 - 2024. All rights reserved.