【问题标题】:Switch turns between the Player and AI in Unity在 Unity 中切换 Player 和 AI
【发布时间】:2015-11-12 04:05:47
【问题描述】:

我最近开始使用 Unity 进行资源管理隐形游戏。隐身部分是回合制的,类似于 Hitman Go。我有一个简单的角色控制器和一个简单的在特定路径上巡逻的 AI。但是,这些动作是实时工作的,我想将其更改为回合制。 AI 应该等待玩家完成他/她的移动,然后自己移动。播放器也是如此。

只有在对方移动完成时,玩家和 AI 才能移动到相邻的航路点。

我应该怎么做?

谢谢

我写的语言是 UnityScript。

【问题讨论】:

    标签: unity3d artificial-intelligence unityscript


    【解决方案1】:

    作为一个非常简单的解决方案,首先您可以创建一个空的游戏对象。将其命名为 TurnController。使用简单的脚本,您可以在其上添加一个布尔变量。让我们将其命名为 isPlayerTurn。对于玩家移动,你可以检查这个,如果它是真的玩家可以移动。在他/她的移动结束时(可能单击结束转弯按钮或当它达到移动的最大距离或其他东西时)您可以将 isPlayerTurn 设置为 false。当然人工智能应该检查(也许在更新功能中。但可以根据你的设计改变)如果它是真的,人工智能可以做它需要做的事情。并且在其回合结束时,它应该将 isPlayerTurn 更改回 true。我知道这是一个非常简单的解决方案,但希望它有助于开始。我希望我没有误解你的问题。

    【讨论】:

      【解决方案2】:

      将 ai 编写为玩家实例并让它模拟玩家输入。 (相反,您也可以在这两个类上实现一个通用接口。)

      使用 GameManager 行为脚本生成一个游戏对象,该脚本存储对当前玩家(或 ai)的引用。然后让 GameManager 通过检查他们的输入每帧更新当前玩家。如果(人类)玩家在轮到他的时候提供输入,他的输入将被忽略。

      这样,玩家和ai不必知道是否轮到他们了。

      【讨论】:

        猜你喜欢
        • 2017-09-17
        • 2015-02-07
        • 2014-10-27
        • 1970-01-01
        • 1970-01-01
        • 2020-04-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多