您的位置:首页 > 其它

实现游戏对象之间的通信

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);

}

}

效果可见:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: