Ejemplo n.º 1
0
        /*
         * private GameObject m_ParameterObject = null;
         * public void SetParameterObject( GameObject _object ){
         *      m_ParameterObject = _object;
         * }
         *
         * public GameObject GetParameterObject(){
         *      return m_ParameterObject;
         * }*/

        public void Copy(BehaviourEvent _event)
        {
            if (_event == null)
            {
                return;
            }

            base.Copy(_event);

            ParameterString  = _event.ParameterString;
            ParameterInteger = _event.ParameterInteger;
            ParameterFloat   = _event.ParameterFloat;
            ParameterBoolean = _event.ParameterBoolean;
            //SetParameterObject( _event.GetParameterObject() );
        }
Ejemplo n.º 2
0
 public BehaviourEvent(BehaviourEvent _event) : base(_event)
 {
     Copy(_event);
 }
Ejemplo n.º 3
0
        /// <summary>
        /// Sends the message.
        /// </summary>
        /// <param name="_method">Method.</param>
        protected virtual void SendMessage(BehaviourEvent _event)
        {
            if (Owner == null || _event == null || string.IsNullOrEmpty(_event.FunctionName))
            {
                return;
            }

            if (m_Receiver == null)
            {
                m_Receiver = Owner;
            }

            if (m_ReceiverTransform == null)
            {
                m_ReceiverTransform = SystemTools.FindChildByName(_event.ComponentName, m_Receiver.transform);
            }

            if (m_ReceiverTransform != null)
            {
                GameObject _receiver = m_ReceiverTransform.gameObject;

                switch (_event.ParameterType)
                {
                case BehaviourEventParameterType.Boolean:
                    _receiver.SendMessage(_event.FunctionName, _event.ParameterBoolean, SendMessageOptions.DontRequireReceiver);
                    break;

                case BehaviourEventParameterType.Integer:
                    _receiver.SendMessage(_event.FunctionName, _event.ParameterInteger, SendMessageOptions.DontRequireReceiver);
                    break;

                case BehaviourEventParameterType.Float:
                    _receiver.SendMessage(_event.FunctionName, _event.ParameterFloat, SendMessageOptions.DontRequireReceiver);
                    break;

                case BehaviourEventParameterType.String:
                    _receiver.SendMessage(_event.FunctionName, _event.ParameterString, SendMessageOptions.DontRequireReceiver);
                    break;

                case BehaviourEventParameterType.Sender:
                    _receiver.SendMessage(_event.FunctionName, Owner, SendMessageOptions.DontRequireReceiver);
                    break;

                case BehaviourEventParameterType.SenderComponent:
                    _receiver.SendMessage(_event.FunctionName, OwnerComponent, SendMessageOptions.DontRequireReceiver);
                    break;

                case BehaviourEventParameterType.SenderTransform:
                    _receiver.SendMessage(_event.FunctionName, Owner.transform, SendMessageOptions.DontRequireReceiver);
                    break;

                default:
                    _receiver.SendMessage(_event.FunctionName, null, SendMessageOptions.DontRequireReceiver);
                    break;
                }

                if (DebugLogIsEnabled)
                {
                    PrintDebugLog(this, "Send Message '" + _event.FunctionName + "' with " + _event.ParameterType.ToString() + " parameter to " + _receiver.name + " (" + _receiver.GetInstanceID() + ")");
                }
            }
            else
            {
                switch (_event.ParameterType)
                {
                case BehaviourEventParameterType.Boolean:
                    m_Receiver.BroadcastMessage(_event.FunctionName, _event.ParameterBoolean, SendMessageOptions.DontRequireReceiver);
                    break;

                case BehaviourEventParameterType.Integer:
                    m_Receiver.BroadcastMessage(_event.FunctionName, _event.ParameterInteger, SendMessageOptions.DontRequireReceiver);
                    break;

                case BehaviourEventParameterType.Float:
                    m_Receiver.BroadcastMessage(_event.FunctionName, _event.ParameterFloat, SendMessageOptions.DontRequireReceiver);
                    break;

                case BehaviourEventParameterType.String:
                    m_Receiver.BroadcastMessage(_event.FunctionName, _event.ParameterString, SendMessageOptions.DontRequireReceiver);
                    break;

                case BehaviourEventParameterType.Sender:
                    m_Receiver.BroadcastMessage(_event.FunctionName, Owner, SendMessageOptions.DontRequireReceiver);
                    break;

                case BehaviourEventParameterType.SenderComponent:
                    m_Receiver.BroadcastMessage(_event.FunctionName, OwnerComponent, SendMessageOptions.DontRequireReceiver);
                    break;

                case BehaviourEventParameterType.SenderTransform:
                    m_Receiver.BroadcastMessage(_event.FunctionName, Owner.transform, SendMessageOptions.DontRequireReceiver);
                    break;

                default:
                    m_Receiver.BroadcastMessage(_event.FunctionName, null, SendMessageOptions.DontRequireReceiver);
                    break;
                }

                if (DebugLogIsEnabled)
                {
                    PrintDebugLog(this, "Broadcast Message '" + _event.FunctionName + "' with " + _event.ParameterType.ToString() + " parameter to " + m_Receiver.name + " (" + m_Receiver.GetInstanceID() + ")");
                }
            }
        }