• QQ
  • nahooten@sina.com
  • 常州市九洲新世界花苑15-2

游戏开发

常州手游开发培训-U3D委托一个类访问到另一个类

原创内容,转载请注明原文网址:http://homeqin.cn/a/wenzhangboke/jishutiandi/youxikaifa/2019/0106/312.html

常州手游开发设计-Unity3D通过委托一个类访问到另一个类中的方法

 
 
如何通过委托实现一个类访问到另一个类?首先大家需要知道委托可以做什么,委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。了解完后,下面常州微信公众平台开发-幻天就给大家介绍下实现方法。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class class1 : MonoBehaviour {
    public static class1 Instance
    {
        private set;
        get;
    }
    void Awake()
    {
        Instance = this;
    }
    void OnDestroy()
    {
        if (Instance != null)
        {
            Instance = null;
        }
    }
    public delegate void FunVoid();
    public delegate void FunString(string str);
    public FunVoid delFun;
    public FunString delFunString;
    // Use this for initialization
    void Start () {
        delFun();
        delFunString("11111");
    }
    // Update is called once per frame
    void Update () {
    }


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class class2 : MonoBehaviour {
    public static class2 Instance
    {
        private set;
        get;
    }
    void Awake()
    {
        Instance = this;
    }
    void Start()
    {
        class1.Instance.delFun += class2Fun;
        class1.Instance.delFunString += class2FunString;
    }
    void OnDestroy()
    {
        if (Instance != null)
        {
            Instance = null;
        }
        class1.Instance.delFun -= class2Fun;
        class1.Instance.delFunString -= class2FunString;
    }
    // Use this for initialization
    // Update is called once per frame
    void Update () {
    }
    void class2Fun()
    {
        Debug.Log("class2Fun()");
    }
    void class2FunString(string str)
    {
        Debug.Log("class2常州微信小程序开发FunString()");
    }


 


上篇:上一篇:常州手游开发-Unity中的优化技术
下篇:下一篇:常州手游开发培训-Unity加载和内存管理