Unity 2D中的LookAt无法正常工作

时间:2017-12-06 17:58:41

标签: c# unity3d rotation

我已经看到了很多这个问题的解决方案,我已经尝试了很多,但没有成功。 LookAt在Unity 2d中无效,我已经尝试了一段时间。

public Transform target; 

// ...

void OnTriggerEnter2D(Collider2D other)
{
  if (other.gameObject.name.Contains("Anti"))
  {
    Quaternion rot = transform.rotation;
    transform.rotation = rot;
    float z = rot.eulerAngles.z;

    Vector3 pos = transform.position;
    Vector3 velocity = new Vector3(0, -3, 0);

    z += Random.Range(-15.0f, 15.0f);

    rot = Quaternion.Euler( 0, 0, z );

    transform.position = pos;
    transform.rotation = rot;

    maxSpeed = Random.Range(5.0f, 15.0f);
  }
}   

我正在努力为LookAt向我的中心提供任何工作似乎不起作用。

我所有的其他代码都有效(虽然它有许多不必要的部分我可以减少),它就在我将Z设置为随机范围之前,我需要它来查看Origin或Center对象。我根本无法工作。

我找到了解决问题的方法,我刚刚清理了我的代码并添加了

     Vector3 diff = Vector3.zero - transform.position;
     diff.Normalize();

     float rot_z = Mathf.Atan2(diff.y, diff.x) * Mathf.Rad2Deg;
     transform.rotation = Quaternion.Euler(0f, 0f, rot_z - 90);

我认为我的问题是我的其余代码,

0 个答案:

没有答案