unity-game-engine - 在 Unity3D 中创建 Controller 管理器

标签 unity-game-engine game-engine

我想在 Unity3D 中创建一个主游戏对象,它将充当与控件相关的任何内容的命令中心,以便游戏中需要知道玩家是否试图向右走的任何组件都会收到通知或状态改变并采取相应行动。我对 Unity 编程和脚本编写有点陌生,所以我知道这是可能的,但我不知道如何专门使用引擎来实现。

我遇到的一些概念是:

  • 状态改变技术
  • 单例上帝类
  • 父游戏对象及其子游戏对象向上发送消息并向下接收消息
  • 继承充当接口(interface)的抽象类,并在某个集合中实现并迭代以获取调用的消息

如果你们对这个主题有任何见解,那就太好了。我基本上想知道解决这个问题的好方法是什么,如何决定一个好的方法(优点与缺点),或者我是否全错了。 :)

我正在寻找的是您选择的用于此目的的方法的实现示例。无需深入研究每个单独的方法。也许简要描述一下您决定采用这种模式的原因会很棒!

提前致谢!

最佳答案

好吧,你可以使用 C# events : 1)创建CommandCenter类(MonoBehaviour),实现一些需要共享的事件,并创建一些公共(public)方法来调用它们。 2) 每当你处理按钮播放器按下时,调用 CommandCenter 中调用事件的方法(或者,你可以将事件公开并直接调用 tham) 3)在每个组件中,女巫应该知道一些事件,在Awake方法中,执行以下操作:

var commandCenter =  FindObjectOfType(CommandCenter);
commandCenter.MyEvent += localMyEventHandler;

4)不要忘记取消订阅销毁事件:

OnDestroy ()
{
var commandCenter =  FindObjectOfType(CommandCenter);
commandCenter.MyEvent -= localMyEventHandler;
}

5) 因此,在 localMyEventHandler 方法中您可以处理此事件。

关于unity-game-engine - 在 Unity3D 中创建 Controller 管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13795624/

相关文章:

animation - 如何使用新的Unity4.3 2D框架正确翻转2D角色? (动画期间游戏对象的旋转)

java - 用 Java 序列化游戏?

java - GTGE 的 Java 数学问题

java - 最大限度地减少 gme 中的 AI 使用

Java 继承/OOP - 仅使用父级句柄调用子类型特定方法

ios - 每次我在 Xcode for iOS 中构建 Unity 应用程序时,它都会创建一个新图标

c# - 一个脚本可以有2个Update方法吗

c# - 针对特定项目在 Unity 中进行 C# 编码的问题

unity-game-engine - Unity3DPhysics2D禁用变形

ios - 语义问题 : Cannot find the protocol declaration for ‘ARSessionDelegate’