• 事件


    如何使用事件创建动态的“广播”系统。

    事件

    EventManager

    using UnityEngine;
    using System.Collections;
    
    public class EventManager : MonoBehaviour 
    {
        public delegate void ClickAction();
        public static event ClickAction OnClicked;
    
    
        void OnGUI()
        {
            if(GUI.Button(new Rect(Screen.width / 2 - 50, 5, 100, 30), "Click"))
            {
                if(OnClicked != null)
                    OnClicked();
            }
        }
    }

    TeleportScript

    using UnityEngine;
    using System.Collections;
    
    public class TeleportScript : MonoBehaviour 
    {
        void OnEnable()
        {
            EventManager.OnClicked += Teleport;
        }
    
    
        void OnDisable()
        {
            EventManager.OnClicked -= Teleport;
        }
    
    
        void Teleport()
        {
            Vector3 pos = transform.position;
            pos.y = Random.Range(1.0f, 3.0f);
            transform.position = pos;
        }
    }

    TurnColorScript

    using UnityEngine;
    using System.Collections;
    
    public class TurnColorScript : MonoBehaviour 
    {
        void OnEnable()
        {
            EventManager.OnClicked += TurnColor;
        }
    
    
        void OnDisable()
        {
            EventManager.OnClicked -= TurnColor;
        }
    
    
        void TurnColor()
        {
            Color col = new Color(Random.value, Random.value, Random.value);
            renderer.material.color = col;
        }
    }
  • 相关阅读:
    统计一行字符串中每个字母个数
    不定宽高的文字在div中垂直居中
    转:Python 与 Excel 不得不说的事
    Centos 6安装python3.5
    day04
    day03
    Day02
    python ciscolib模块
    三级菜单
    模拟登陆系统
  • 原文地址:https://www.cnblogs.com/Mr-Prince/p/14144159.html
Copyright © 2020-2023  润新知