版本: Unity 6 (6000.0)
语言英语
  • C#

UnityAction

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们会阅读用户提出的每个建议的更改,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请 <a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public delegate void UnityAction();

描述

UnityEvents 使用的零参数委托。

使用它在您的脚本中创建一些动态功能。Unity Actions 允许您动态调用多个函数。由于 Unity Actions 没有参数,它们调用的函数也必须没有参数。有关更多信息,请参见 委托

//Attach this script to a GameObject. Attach a Renderer and Button component to the same GameObject for this example.
//This script will change the Color of the GameObject as well as output messages to the Console saying which function was run by the UnityAction.

using UnityEngine; using UnityEngine.UI; using UnityEngine.Events;

public class UnityActionExample : MonoBehaviour { //This is the Button you attach to the GameObject in the Inspector Button m_AddButton; Renderer m_Renderer;

private UnityAction m_MyFirstAction; //This is the number that the script updates float m_MyNumber;

void Start() { //Fetch the Button and Renderer components from the GameObject m_AddButton = GetComponent<Button>(); m_Renderer = GetComponent<Renderer>();

//Make a Unity Action that calls your function m_MyFirstAction += MyFunction; //Make the Unity Action also call your second function m_MyFirstAction += MySecondFunction; //Register the Button to detect clicks and call your Unity Action m_AddButton.onClick.AddListener(m_MyFirstAction); }

void MyFunction() { //Add to the number m_MyNumber++; //Display the number so far with the message Debug.Log("First Added : " + m_MyNumber); }

void MySecondFunction() { //Change the Color of the GameObject m_Renderer.material.color = Color.blue; //Ouput the message that the second function was played Debug.Log("Second Added"); } }