首页 > 代码库 > Unity-3D 委托Delegate
Unity-3D 委托Delegate
我现在想要做一个类与类之间的通信。
概念啥的就不说了,我先写个在Unity3D中的小Demo
建立一个Cube,一个Cube脚本,绑在Cube上。脚本内容:
using UnityEngine; using System.Collections; public delegate void Delegate(); public class Cube : MonoBehaviour { //public delegate void Delegate();//定义委托,注意返回类型和参数 public Delegate delegateFun;//定义委托变量(委托是一个数据类型 // Use this for initialization void Start () { delegateFun=new Delegate(Up); //deleteFun = Up; delegateFun (); } // Update is called once per frame void Update () { } void Up(){ Debug.Log ("Cube is UP!"); } }运行结果:
Cube is UP!
成功!
进一步,写一个Main类绑定在摄像机上,调用Cube类中的Up怎么办
看代码:
Cube.cs
using UnityEngine; using System.Collections; public delegate void Delegate(); public class Cube : MonoBehaviour { public static Delegate delegateFun; void Awake(){ delegateFun=new Delegate(Up); } void Up(){ Debug.Log ("Cube is UP!"); } }Main.cs
using UnityEngine; using System.Collections; public class Main : MonoBehaviour { void Start () { Cube.delegateFun (); } }ok,能运行出来结果。
需要注意的是 Awake执行在Start之前,如果delegateFun实例化在原来的Start中就会造成空指针。
把这个变量直接static可通过类直接调用。(还是没到自己想要的结果)
Unity-3D 委托Delegate
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。