/// <summary>
        /// Ons the mecanim event drag end.
        /// </summary>
        /// <param name="args">Arguments.</param>
        void onMecanimEventDragEnd(TimeLineArgs <float> args)
        {
            int[] indexArray = new int[mecanimNode.children.Length];
            for (int l = 0; l < indexArray.Length; l++)
            {
                indexArray [l] = l;
            }

            Array.Sort(mecanimNode.children, indexArray, eventTimeComparer);

            bool[] cloneOfSelected = (bool[])eventTimeValuesSelected.Clone();
            int    inx             = -1;
            SendEventNormalizedNode ev;

            for (int m = 0; m < indexArray.Length; m++)
            {
                inx = indexArray [m];
                ev  = ((SendEventNormalizedNode)mecanimNode.children [m]);
                this.eventTimeValuesSelected [m] = cloneOfSelected [inx];
                //this.eventTimeValues [m] = (float)ev.timeNormalized.Value;
                this.eventTimeValues [m]   = (float)(ev.timeNormalized.serializedProperty as SerializedProperty).floatValue;
                this.eventDisplayNames [m] = ev.name;
            }



            mecanimNode.tree.HierarchyChanged();
            StateUtility.SetDirty(mecanimNode.tree);
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            State.Items.Add(new ListItem()
            {
                Text = "Select State", Value = ""
            });
            foreach (SelectListItem sli in StateUtility.GetStateList(State.SelectedValue ?? ""))
            {
                State.Items.Add(new ListItem()
                {
                    Text = sli.Text, Value = sli.Value
                });
            }

            //If we are loading the page for the first time ...
            if (!Page.IsPostBack)
            {
                //Load a sample customer
                Model = Customer.LoadMockup();
                //This ApplyModelToPage call will create an IWFValueProvider from the model object
                //..and apply the values from this instance to the page controls.
                WebControlUtilities.ApplyModelToPage(this, Model);
                WebControlUtilities.ApplyModelToPage(this, Model.Address);
                WebControlUtilities.ApplyModelToPage(this, Model.Login);
            }
        }
Exemple #3
0
        public void TestStateChange()
        {
            var world = new World("Test world");
            var em    = world.EntityManager;

            var system = world.CreateSystem <CharacterSystem>();

            var obj  = em.CreateEntity();
            var obj2 = em.CreateEntity();

            em.AddComponentData(obj, StateChangeRequest.Create <Dead>());
            em.AddComponentData(obj2, StateChangeRequest.Create <Alive>());

            system.Update();
            system.Update();

            Assert.IsTrue(StateUtility.IsInState <Dead>(obj, em));
            Assert.IsTrue(StateUtility.IsInState <Alive>(obj2, em));

            em.AddComponentData(obj, StateChangeRequest.Create <Alive>());
            em.AddComponentData(obj2, StateChangeRequest.Create <Dead>());

            system.Update();

            Assert.IsTrue(StateUtility.IsInState <Alive>(obj, em));
            Assert.IsTrue(StateUtility.IsInState <Dead>(obj2, em));
        }
Exemple #4
0
        private void Awake()
        {
            Transform root = StateUtility.GetRootTransform(this.transform);
            List <StateUtility.Requirement> requirement = new List <StateUtility.Requirement>();

            for (int i = 0; i < _formAnyStateTransition.Count; i++)
            {
                requirement.AddRange(StateUtility.GetAllRequirements(_formAnyStateTransition[i]));
            }

            StateUtility.GetAllRequiredReferences(requirement.ToArray(), root.gameObject, true);
        }
 protected void Page_Load(object sender, EventArgs e)
 {
     State.Items.Add(new ListItem()
     {
         Text = "Select State", Value = ""
     });
     foreach (SelectListItem sli in StateUtility.GetStateList(State.SelectedValue ?? ""))
     {
         State.Items.Add(new ListItem()
         {
             Text = sli.Text, Value = sli.Value
         });
     }
 }
Exemple #6
0
        protected virtual void Awake()
        {
            RootParent = StateUtility.GetRootTransform(transform);

            foreach (var tranistion in _stateTransition)
            {
                FillConditionReference(this, tranistion.Conditions);
            }

            foreach (var item in _exitStateTransitions)
            {
                FillConditionReference(this, item.Conditions);
            }
        }
        /// <summary>
        /// Ons the mecanim event delete.
        /// </summary>
        /// <param name="args">Arguments.</param>
        void onMecanimEventDelete(TimeLineArgs <float> args)
        {
            float[] timeValues       = (float[])args.values;
            int     timeValuesNumber = timeValues.Length;



            SendEventNormalizedNode child;

            for (int i = 0; i < mecanimNode.children.Length;)
            {
                child = mecanimNode.children [i] as SendEventNormalizedNode;

                if (i < timeValuesNumber)
                {
                    //child.timeNormalized.Value = timeValues [i];
                    (child.timeNormalized.serializedProperty as SerializedProperty).floatValue = timeValues [i];
                    i++;
                }
                else
                {
                    //remove localy from node parent
                    mecanimNode.Remove(child);
                    //remove from internal behaviour tree
                    mecanimNode.tree.RemoveNode(child, false);
                }
            }



            mecanimNode.tree.SaveNodes();

            //assign to display new
            eventTimeValues = timeValues;



            //recreate
            eventDisplayNames = mecanimNode.children.Select((val) => ((SendEventNormalizedNode)val).name).ToArray();



            StateUtility.SetDirty(mecanimNode.tree);

            Undo.RecordObject(target.self, "Delete Node");
            //SendEventNormalizedEditor.Hide ();
        }
    public void PlayerState_serializes_and_deserializes_properly()
    {
        var sizes = new List <int>();

        for (var i = 0; i < 1000; i++)
        {
            var state         = StateUtility.RandomPlayerState();
            var networkWriter = new NetworkWriter();
            state.Serialize(networkWriter);
            var bytes = networkWriter.AsArray();
            sizes.Add(networkWriter.Position);
            var networkReader     = new NetworkReader(bytes);
            var deserializedState = new PlayerState();
            deserializedState.Deserialize(networkReader);
            Assert.AreEqual(state, deserializedState);
        }
        Debug.Log($"Message Size: {sizes.Average()}");
    }
Exemple #9
0
    public void MatchInput_serializes_and_deserializes_properly(int playerCount)
    {
        var sizes = new List <int>();

        for (var i = 0; i < 1000; i++)
        {
            var input         = StateUtility.RandomState(playerCount);
            var networkWriter = new Serializer();
            input.Serialize(networkWriter);
            var bytes = networkWriter.AsArray();
            sizes.Add(networkWriter.Position);
            var networkReader = new Deserializer(bytes);
            var deserialized  = new MatchState(playerCount);
            deserialized.Deserialize(networkReader);
            Assert.AreEqual(input, deserialized);
        }
        Debug.Log($"Average Message Size ({playerCount}): {sizes.Average()}");
    }
Exemple #10
0
        /// <summary>
        /// Enter a new state.
        /// </summary>
        /// <param name="newState"> New state instance.</param>
        public void EnterState(IState newState)
        {
            if (newState == null)
            {
                return;
            }

            var requirement = StateUtility.GetAllRequirements(newState);

            if (StateUtility.GetAllRequiredReferences(newState, requirement, gameObject, true))
            {
                var stateHandler = new StateInterfaceHandler(newState);
                if (KeepStatesOnStack)
                {
                    if (statesStack.Count > 0)
                    {
                        CurrentStateInterfaceHandler.Sleep();
                    }
                }
                else
                {
                    statesStack.Pop().Exit();
                }

                statesStack.Push(stateHandler);

                CurrentStateInterfaceHandler.Enter();

                #if UNITY_EDITOR
                currentStateTypes.Insert(0, newState.GetType().Name);
                #endif
            }
            else
            {
                string typeName = newState.GetType().Name;
                Debug.LogErrorFormat("Conditions to enter the state type of {0} were not met.", typeName);
            }
        }
Exemple #11
0
 private void OnDestroy()
 {
     StateUtility.StateHandlerDestoryed(this);
 }