예제 #1
0
    void TestReceiveMySendMessageReturnGameObject(MyMessageArgs myMessageArgs)
    {
        Debug.Log("TestReceiveMySendMessageReturnGameObject : Parameter1: " + myMessageArgs.Parameter1);
        Debug.Log("TestReceiveMySendMessageReturnGameObject : Parameter2: " + myMessageArgs.Parameter2);

        myMessageArgs.ReturnParameter = Camera.main.gameObject;

        Debug.Log("TestReceiveMySendMessageReturnGameObject : Setting ReturnParameter to Gameobject : " + ((GameObject)myMessageArgs.ReturnParameter).name);
    }
예제 #2
0
    void TestReceiveMySendMessageReturnFloat(MyMessageArgs myMessageArgs)
    {
        Debug.Log("TestReceiveMySendMessageReturnFloat : Parameter1: " + myMessageArgs.Parameter1);
        Debug.Log("TestReceiveMySendMessageReturnFloat : Parameter2: " + myMessageArgs.Parameter2);

        float a = (float)myMessageArgs.Parameter1;
        float b = (float)myMessageArgs.Parameter2;

        myMessageArgs.ReturnParameter = a + b;
        Debug.Log("TestReceiveMySendMessageReturnFloat : Setting ReturnParameter to Float : " + myMessageArgs.ReturnParameter);
    }
예제 #3
0
        void DoSendMessage()
        {
            var go = Fsm.GetOwnerDefaultTarget(gameObject);
            if (go == null)
            {
                return;
            }

            MyMessageArgs myMessageArgs = new MyMessageArgs();
            myMessageArgs.Parameter1 = Parameter1.GetValue();
            myMessageArgs.Parameter2 = Parameter2.GetValue();

            switch (delivery)
            {
                case MessageType.SendMessage:
                    go.SendMessage(MethodName, myMessageArgs, options);

                    if (myMessageArgs.ReturnParameter != null)
                    {
                        // NOTE: the client Script Method must set myMessageArgs.ReturnParameter to the correct type 
                        PlayMakerUtils.ApplyValueToFsmVar(this.Fsm, ReturnParameter, myMessageArgs.ReturnParameter);
                    }
                    return;

                case MessageType.SendMessageUpwards:
                    go.SendMessageUpwards(MethodName, myMessageArgs, options);
                    // No Return Parameters as Multiple Receivers
                    return;

                case MessageType.BroadcastMessage:
                    go.BroadcastMessage(MethodName, myMessageArgs, options);
                    // No Return Parameters as Multiple Receivers
                    return;
            }

            Finish();
        }