unity에서 메시지 전달의 세 가지 방법

1406 단어 Unity
객체 간 메시지 전달에는 다음 세 가지 방법이 있습니다.
  • BroadcastMessage() 방법
  • SendMessage() 방법
  • SendMessageUpwards() 방법
  • BroadcastMessage 방법:
    void BroadcastMessage (string methodName, object parameter = null, SendMessageOptions options = SendMessageOptions.RequireReceiver) 
    이 게임 물체와 그 하위 물체의 모든 MonoBehavior에 methodName이라는 메시지를 보냅니다. 여기서 parameter는 methodName의 매개 변수입니다.options에서 메시지를 보내는 옵션을 결정했습니다. (기본값은 Require Receiver입니다. 이 때 처리하는 구성 요소가 없으면 오류가 발생합니다.) [메시지를 보내는 것이라 실질적으로 MonoBehavior에서 methodName이라는 함수를 호출합니다. 메시지를 받는 구성 요소에 해당하는 이름의 함수가 없으면 함수를 실행하지 않습니다.]
    using UnityEngine;
    using System.Collections;
    
    public class MessageTest : MonoBehaviour 
    {
    	public void ApplyMessage(string name)
    	{
    		Debug.Log("The name is :" + name);
    	}
    
    	void Awake()
    	{
    		gameObject.BroadcastMessage("ApplyMessage", gameObject.name);
    	}
    }

    SendMessage 방법:
    void SendMessage(string methodName, object value = null, SendMessageOptions options = SendMessageOptions.RequireReceiver);
    동상, 단지 발송 대상이 이 게임 대상인 모든 MonoBehavior일 뿐이다.(methodName 메소드를 포함하더라도 부모, 자식의 모든 MonoBehavior는 이 메시지를 받지 않습니다.)
    SendMessageUpwards 방법:
    void SendMessageUpwards(string methodName, object value = null, SendMessageOptions options = SendMessageOptions.RequireReceiver);
    마찬가지로 발송 대상은 이 게임 대상과 모든 부모 대상의 모노Behavior일 뿐이다.(하위 물체 중 일부Monobehavior에 이 메시지가 포함되어 있어도 실행되지 않습니다~)

    좋은 웹페이지 즐겨찾기