Unity解决脚本之间相互调用的几种方法
2015-08-07 00:02
453 查看
经常看到论坛里面有问,unity中脚本怎么调用另一个脚本,或者unity里面的有没有事件管理器等等,下面我们可以看看unity解决脚本相互调用的几种方法
1. 直接引用
最基本调用另一脚本的办法。通常项目中使用在一个预制体的内部,该模块完全由自己负责基本不对外耦合,操作方式简单在Inspector中拖拽即可。
[AppleScript] 纯文本查看 复制代码
?
优点:
简单高效,编辑器中直接可见。
缺点:
脚本间强耦合
一个脚本的变化可能带来链式反应
也容易出现"Null ReferenceException"异常
2. 单例模式
mvc的基础,能有效的解决多对一调用需求
[AppleScript] 纯文本查看 复制代码
?
优点:
mvc结构,逻辑结构清晰,
有效解决了多对一的调用需求
缺点:
要保证单例的构造比子模块的构造早
单例的生命周期要控制好
单例类后期会变得极其臃肿
3. SendMessage,BroadCastMessage
unity4.6前的自带事件系统,基本解耦,以字符串的形式发送消息。ps:
[AppleScript] 纯文本查看 复制代码
?
优点:
低耦合,调用方便。
缺点:
不言而喻基本没什么程序员爱用,效率较低,
以字符串的形式调用不是类型安全的, 出错调试起来十分困难
1. 直接引用
最基本调用另一脚本的办法。通常项目中使用在一个预制体的内部,该模块完全由自己负责基本不对外耦合,操作方式简单在Inspector中拖拽即可。
[AppleScript] 纯文本查看 复制代码
?
简单高效,编辑器中直接可见。
缺点:
脚本间强耦合
一个脚本的变化可能带来链式反应
也容易出现"Null ReferenceException"异常
2. 单例模式
mvc的基础,能有效的解决多对一调用需求
[AppleScript] 纯文本查看 复制代码
?
mvc结构,逻辑结构清晰,
有效解决了多对一的调用需求
缺点:
要保证单例的构造比子模块的构造早
单例的生命周期要控制好
单例类后期会变得极其臃肿
3. SendMessage,BroadCastMessage
unity4.6前的自带事件系统,基本解耦,以字符串的形式发送消息。ps:
[AppleScript] 纯文本查看 复制代码
?
低耦合,调用方便。
缺点:
不言而喻基本没什么程序员爱用,效率较低,
以字符串的形式调用不是类型安全的, 出错调试起来十分困难
相关文章推荐
- Unity获取游戏对象详解
- Unity常用插件
- unity GL画线
- Unity3D避免玩家作弊
- Unity (三)
- unity3d 学习笔记(两)
- Unity3D EasyTouch使用教程包括实例资源
- unity AssetBundle的资源管理
- 通过Unity依赖注入
- 解决 unity 用 vs通过wifi 真机联调 一直连接不上
- unity, audio falloff
- unity 摄像头
- 【Unity】2D动画控制器详解
- Unity 2D动画控制器详解
- Unity State Machine
- unity第三方插件behavior designer心得
- [Unity]Sprite 2D精灵动画
- 使用unity发布PSVita应用遇到的问题
- Unity项目工程集成Mob社会化分享SDK(android篇)
- unity场景导出