zoukankan      html  css  js  c++  java
  • < Unity 3D专栏 >实现游戏对象与对象之间通信

    游戏中,对象与对象之间需要交流,实现的方法多种,例如:可定义静态变量,其他脚本直接调用, 也可用到: SendMessage

    今天主要学习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);
    	}
    	
    }
    


    效果可见:


     

  • 相关阅读:
    记录log中的16进制和ASCII码字符输出
    有效的沟通技巧
    时间的真谛
    目标设定与时间管理
    第四代时间管理
    什么是高效沟通
    error LNK1104: cannot open file 错误解决方案
    js压缩工具1.0界面绘制
    时间管理的定义与目的
    JArgs命令行选项解析>Java套件
  • 原文地址:https://www.cnblogs.com/Terrain/p/3276620.html
Copyright © 2011-2022 走看看