原创内容,转载请注明原文网址: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加载和内存管理