【问题标题】:gameobject that rotate away from the facing direction of another game object旋转远离另一个游戏对象的面向方向的游戏对象
【发布时间】:2016-04-04 04:48:18
【问题描述】:

试图解决这个问题,但没有成功。

我有一个可以到达 X 点的 AI;面对那个对象,因为我使用了 transform.lookAt()。

现在,我想将 AI 转向 180 度,这样它就可以面向另一个代理所面向的方向。一旦 AI 到达目的地,我确实尝试将 180 添加到变换中,但它不起作用,因为 AI 可能从任何位置到达,因此 180 度旋转并不总是与其他代理的方向相同面对。

有没有办法知道或设置对象/AI/GameObject 面向哪个方向?数学方面,我相信它应该是与游戏中导入对象时相关的vector3,坐标为0.0.0;尽管我无法真正跟踪应用程序中每个 GO 的方向;所以我希望有某种方法可以设置 GO 指向的方向(即使它没有移动),或者检索方向。

【问题讨论】:

    标签: unity3d


    【解决方案1】:

    您是否尝试过查看Transform.forward

    为完整性而编辑:

    由于 transform.lookAt() 目前正在为您工作,您可以尝试从任何方向面对目标:

    var lookPos = target.position - transform.position; 
    lookPos.y = 0; 
    var rotation = Quaternion.LookRotation(lookPos); 
    

    然后加上180度的旋转

    【讨论】:

    • 是的,并且对于某些不一定等于真实前进方向的对象。我相信 .forward on trasform 组件基于 Z 轴上的值 0;这可能等于也可能不等于网格的面部前进方向。在统一我所有网格上的所有 Z 轴之前,我之前正在评估其他选项。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-23
    相关资源
    最近更新 更多