我最近开始使用Unitoryfor一个资源管理的隐形游戏。隐形部分是以转弯为基础的,类似于希特勒的围棋。我有一个简单的字符控制器和一个简单的巡逻AI在一个特定的路径。然而,这些运动是实时的,我想改变它。AI应该等待玩家完成他/她的移动,然后移动自己。球员也是如此。
只有当其他部分的移动完成时,玩家和AI才能移动到他们相邻的路径点。
我该怎么做?
谢谢
我用的语言是UnityScript。
发布于 2015-11-12 05:07:48
作为一个非常简单的解决方案,首先您可以创建一个空的游戏对象。把它命名为TurnController。使用一个简单的脚本,您可以在其上添加一个布尔变量。让我们将其命名为isPlayerTurn。对于玩家的移动,你可以检查这个,如果是真的玩家可以移动。在他/她的移动结束时(可能单击“结束转”按钮,或者当它达到最大移动距离或其他什么时候),您可以设置isPlayerTurn false。当然,AI应该检查(可能在更新函数中)。但可以通过你的设计来改变)如果是真的,AI可以做它需要做的事情。在轮到它的时候,它应该将isPlayerTurn改为true。我知道这是一个非常简单的解决方案,但希望它有助于开始。我希望我没有误解你的问题。
发布于 2015-11-12 12:04:36
将ai编写为player实例,并让它模拟播放器的输入。(相反,您也可以在两个类上实现一个公共接口。)
使用GameManager行为脚本生成游戏对象,该脚本存储对当前玩家(或ai)的引用。然后让GameManager通过检查当前播放器的输入来更新当前播放器的每一个帧。如果(人类)玩家在没有轮到他的时候提供输入,那么他的输入就会被忽略。
这样,玩家和ai就不必知道是否轮到他们了。
https://stackoverflow.com/questions/33664272
复制相似问题