【问题标题】:Unity; Random Object Movement [closed]统一;随机物体移动[关闭]
【发布时间】:2016-08-11 02:41:10
【问题描述】:

我正在制作一个机器人对战游戏,我希望敌人随机移动,然后有时会向敌人移动。我希望移动的代码。

else if (avoid == false)
        {
            transform.LookAt(target);
            transform.Translate(Vector3.forward * Time.deltaTime * movementSpeed);
            currentLerpTime = 0;
        }

这段代码只是让 AI 向玩家移动,但我也希望它偶尔向随机方向移动,然后偶尔改变方向。我该怎么做?

【问题讨论】:

  • Eeer...一般来说,在寻求 Stack Overflow 帮助之前,您会希望自己已经尝试过解决问题。尝试在线查找在 Unity 中生成随机 Vector3 的最佳方法,并考虑使用 FSM 来相应地管理不同的状态(随机移动、接近、攻击等)。学习如何使用它可能需要一点时间,但如果您正在开发游戏,这非常值得。
  • Unity 网站上有专门为您准备的教程。 unity3d.com/learn/tutorials/topics/scripting/…

标签: c# object unity3d rotation translation


【解决方案1】:

要让它沿随机方向移动,你需要编辑的变量是向量。

else if (avoid == false)
        {
            transform.LookAt(target);
            transform.Translate(Vector3.forward*Time.deltaTime*Speed);
                                 // ^^^^^^
            currentLerpTime = 0;
        }

但这里的问题是,当它移动时,它会继续查看目标(我假设每帧都会调用它)。在生成三个随机数方面,你可以自己用 C# 来完成,或者去阅读这个

https://docs.unity3d.com/ScriptReference/Random.html

该链接应该对您有所帮助。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2021-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    相关资源
    最近更新 更多