实现游戏对象之间的通信
2013-08-08 11:08
134 查看
游戏中,对象与对象之间需要交流,实现的方法多种,例如:可定义静态变量,其他脚本直接调用, 也可用到: SendMessage
今天主要学习SendMessage的用法。
1、创建两个脚本:“Cube0”和“Cube1”;
2、将两个脚本分别拖拽到Cube0和Cube1对象中;
3、修改Main.cs脚本:
[csharp] view
plaincopy
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脚本:
[csharp] view
plaincopy
using UnityEngine;
using System.Collections;
public class Cube0 : MonoBehaviour
{
//ReceiveCube方法,接收Main.cs传过来的参数
void ReceiveCube(string str)
{
Debug.Log(str);
}
}
Cube1脚本:
[csharp] view
plaincopy
using UnityEngine;
using System.Collections;
public class Cube1 : MonoBehaviour
{
//ReceiveCube方法,接收Main.cs传过来的参数
void ReceiveCube(string str)
{
Debug.Log(str);
}
}
效果可见:
今天主要学习SendMessage的用法。
1、创建两个脚本:“Cube0”和“Cube1”;
2、将两个脚本分别拖拽到Cube0和Cube1对象中;
3、修改Main.cs脚本:
[csharp] view
plaincopy
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脚本:
[csharp] view
plaincopy
using UnityEngine;
using System.Collections;
public class Cube0 : MonoBehaviour
{
//ReceiveCube方法,接收Main.cs传过来的参数
void ReceiveCube(string str)
{
Debug.Log(str);
}
}
Cube1脚本:
[csharp] view
plaincopy
using UnityEngine;
using System.Collections;
public class Cube1 : MonoBehaviour
{
//ReceiveCube方法,接收Main.cs传过来的参数
void ReceiveCube(string str)
{
Debug.Log(str);
}
}
效果可见:
相关文章推荐
- < Unity 3D专栏 >实现游戏对象与对象之间通信
- 如何是使用XMLHttpRequest对象实现与服务器之间的通信
- UNITY3D对象之间实现消息通信管理[源码转载自unity wiki]
- 利用自定义的Event或者使用Action实现对象之间的通信
- 从跨域和同域两个角度实现多页面之间的通信
- 使用Broadcast实现android组件之间的通信
- 静态成员变量实现个对象之间数据共享
- 划Vlan,实现Vlan之间、非Vlan之间的路由通信
- 在Delphi与C++之间实现函数与对象共享
- 【Android游戏开发之五】游戏注册界面Demo-实现两个Activity之间的切换与数据交互!
- C#基础第八天-作业-设计类-面向对象方式实现两个帐户之间转账
- Android中使用开源框架EventBus3.0实现Fragment之间的通信交互
- 使用Handler实现Service和Activity之间的双向通信
- 使用管道实现两个进程之间的通信
- 如何实现浏览器内多个标签页之间的通信
- AIDL详解(AIDL、Messenger两种方式实现跨进程通信,传递自定义对象)
- 利用pipe实现兄弟进程之间的通信
- 应用java多线程实现服务器端与多客户端之间的通信
- android中通过实现Parcelable来在两个页面之间传递对象的简单使用
- android中Activity与service之间相互通信的实现方式