< Unity 3D专栏 >实现游戏对象与对象之间通信
2012-08-06 02:21
706 查看
游戏中,对象与对象之间需要交流,实现的方法多种,例如:可定义静态变量,其他脚本直接调用, 也可用到: SendMessage
今天主要学习SendMessage的用法。
1、创建两个脚本:“Cube0”和“Cube1”;
2、将两个脚本分别拖拽到Cube0和Cube1对象中;
3、修改Main.cs脚本:
设置Cube0 和 Cube1 脚本:
Cube0脚本:
Cube1脚本:
效果可见:
今天主要学习SendMessage的用法。
1、创建两个脚本:“Cube0”和“Cube1”;
2、将两个脚本分别拖拽到Cube0和Cube1对象中;
3、修改Main.cs脚本:
using UnityEngine; using System.Collections; public class Main : MonoBehaviour { //定义全局游戏对象 GameObject obj0; GameObject obj1; void Start () { //获取两个游戏对象 obj0 = GameObject.Find("Cube0"); obj1 = GameObject.Find("Cube1"); } void OnGUI() { if(GUILayout.Button("Move0")) { //告诉Cube0对象,发送一个方法 //Receive是方法名称,My Code是参数;绑定的obj0对象脚本中需要有一个Receive方法接收参数 obj0.SendMessage("ReceiveCube","My Cube0"); obj1.SendMessage("ReceiveCube","My Cube1"); } } void Update () { } }
设置Cube0 和 Cube1 脚本:
Cube0脚本:
using UnityEngine; using System.Collections; public class Cube0 : MonoBehaviour { //ReceiveCube方法,接收Main.cs传过来的参数 void ReceiveCube(string str) { Debug.Log(str); } }
Cube1脚本:
using UnityEngine; using System.Collections; public class Cube1 : MonoBehaviour { //ReceiveCube方法,接收Main.cs传过来的参数 void ReceiveCube(string str) { Debug.Log(str); } }
效果可见:
相关文章推荐
- < Unity 3D专栏 >游戏中 - 怪物AI基础篇
- < Unity 3D专栏 >动态创建对象,并渲染贴图,动态添加删除脚本
- < Unity 3D专栏 >U3D预制包,很好很强大 (二)
- < Unity 3D专栏 >NGUI插件基础教程(一)
- < Unity 3D专栏 >添加控件检测事件,函数处理
- < Unity 3D专栏 >U3D预制包,很好很强大 (一)
- < Unity 3D专栏 >Transform结构图
- < Unity 3D专栏 >NGUI插件基础教程(二) - Sprite,SlicedSprite,Tiled Sprite,FilledSprite的区别
- < Unity 3D专栏 >预设物,节省游戏资源才是王道
- <Unity UGUI> 在Unity5 的UGUI系统上实现图片的遮罩
- <Unity UGUI>使用c#反射实现UGUI文本显示的国际化
- <<3D数学基础:图形与游戏开发>>读后感
- < Unity 3D专栏 >批量操作,界面元素的显示状态
- <<Android.游戏开发入门](美)Mario.Zechner>>读书笔记-----OpenGL ES概览
- <为知更新>Android系统如何实现UI的自适应
- <iOS>iPhone 应用里实现截屏功能的代码
- Android两个Activity之间传递List<Object>对象
- <实例>消除内嵌括号——使用栈实现
- < Unity 3D专栏 >预设物,节省游戏资源才是王道
- Socket:java与C之间的文件传送<3>(JAVA与C通信需要注意的地方)