/// <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); } }
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)); }
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 }); } }
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()}"); }
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()}"); }
/// <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); } }
private void OnDestroy() { StateUtility.StateHandlerDestoryed(this); }