【发布时间】:2017-09-14 15:37:31
【问题描述】:
我正在尝试使用 EventManager 和根据事件来计算对象之间的距离,并在足够多的对象接近目标时做一些事情。
我在 YouTube 上观看了视频,并在 Google 上搜索了示例,但我找不到看起来像我想要的东西。当然,我也看了一般事件的解释视频,但我就是不明白。他们都是英语,这不是我的母语,这很难理解。因此,对于任何语法错误也深表歉意。他们经常说得很快。所以请不要认为我很懒,我已经搜索了几个小时但我就是不明白。
我有一个目标对象和几个敌方对象。这个敌人的对象有标签“敌人”。目标物体可以移动。我做了一个协程,所以当目标移动时,敌人跟随,直到0.5的距离。但是从他们到达0.5的距离的那一刻起,敌人就不再移动了。相反,当他们已经到达目标位置时,他们也应该跟随目标。所以为了防止这种情况,我在while 1 > 0 中更改了while(Vector3.Distance(transform.position, target.position) > 0.5f),(所以总是如此)并且我删除了关于“while 循环之后”的代码部分。但这可能不是正确的方法。
所以,简而言之,我想创建一个事件来跟踪敌人何时到达或失去目标位置。当三个敌人在他们的目标位置时,我想让他们变成蓝色。
谁能告诉我如何做到这一点?我现在不明白,但当我了解它的工作原理后,我可以将它用于游戏中的更多活动。
【问题讨论】:
-
请贴出相关代码
-
那么,您对事件有困难,还是与
while循环有关?对于事件,使用UnityEvent类而不是默认的 c# events +Observable编程模式,观察变量并在其值超出特定值或范围时执行某些操作。据我所知,Observable模式应该也可以解决while循环问题。