/* ********************************************************* */ //! Set Source animation (for Sequence-Object) /*! * @param instanceOriginal * Source Sequecen-Object * * @retval Return-Value * true == Success<br> * false == Failure (Error) * * Set the Sequence-Object as replicate source. */ public bool OriginalSet(Script_SpriteStudio6_Sequence instanceOriginal) { OriginalCleanUp(); /* Mesh-Control Components Correct */ /* MEMO: When "Sequence", Do not correct here. */ /* Checked in DrawUpdate, since instance of "Script_SpriteStudio6_Root" */ /* that actually performs drawing changes depending on the playing state, */ DrawUpdate = DrawUpdateSequence; InstanceSequenceOriginal = instanceOriginal; return(true); }
/* ----------------------------------------------- Functions */ #region Functions private void OnEnable() { InstanceSequence = (Script_SpriteStudio6_Sequence)target; serializedObject.FindProperty("__DUMMY__"); PropertyDataProject = serializedObject.FindProperty("DataProject"); PropertyNameSequencePack = serializedObject.FindProperty("NameSequencePack"); PropertyNameDataSequence = serializedObject.FindProperty("NameDataSequence"); PropertyIndexStepInitial = serializedObject.FindProperty("IndexStepInitial"); PropertyHideForce = serializedObject.FindProperty("FlagHideForce"); PropertyColliderInterlockHideForce = serializedObject.FindProperty("FlagColliderInterlockHideForce"); PropertyFlagPlanarization = serializedObject.FindProperty("FlagPlanarization"); PropertyOrderInLayer = serializedObject.FindProperty("OrderInLayer"); PropertyStopInitial = serializedObject.FindProperty("FlagStopInitial"); }
public override void OnInspectorGUI() { serializedObject.Update(); EditorGUILayout.LabelField("[SpriteStudio6 Replicate Animation]"); int levelIndent = 0; bool flagUpdate = false; EditorGUI.indentLevel = levelIndent + 1; /* Original Data */ Script_SpriteStudio6_Root instanceRoot = PropertyRootOriginal.objectReferenceValue as Script_SpriteStudio6_Root; Script_SpriteStudio6_RootEffect instanceRootEffect = PropertyRootEffectOriginal.objectReferenceValue as Script_SpriteStudio6_RootEffect; Script_SpriteStudio6_Sequence instanceSequence = PropertySequenceOriginal.objectReferenceValue as Script_SpriteStudio6_Sequence; UnityEngine.GameObject gameObjectNow = null; if (null != instanceRoot) { gameObjectNow = instanceRoot.gameObject; } else if (null != instanceRootEffect) { gameObjectNow = instanceRootEffect.gameObject; } else if (null != instanceSequence) { gameObjectNow = instanceSequence.gameObject; } EditorGUILayout.Space(); UnityEngine.GameObject gameObjectNew = EditorGUILayout.ObjectField("Original Animation", gameObjectNow, typeof(UnityEngine.GameObject), true) as UnityEngine.GameObject; EditorGUILayout.LabelField("GameObject that has following components"); EditorGUILayout.LabelField(" can be set to \"Original Animation\"."); EditorGUILayout.LabelField("- Script_SpriteStudio6_Root"); // EditorGUILayout.LabelField("- Script_SpriteStudio6_RootEffect"); EditorGUILayout.LabelField("- Script_SpriteStudio6_Sequence"); EditorGUILayout.Space(); if (gameObjectNow != gameObjectNew) { Script_SpriteStudio6_Root instanceRootNew = null; Script_SpriteStudio6_RootEffect instanceRootEffectNew = null; Script_SpriteStudio6_Sequence instanceSequenceNew = null; if (null == gameObjectNew) { InstanceReplicate.Stop(); // instanceRootNew = null; // instanceRootEffectNew = null; // instanceSequenceNew = null; } else { instanceRootNew = gameObjectNew.GetComponent <Script_SpriteStudio6_Root>(); instanceRootEffectNew = gameObjectNew.GetComponent <Script_SpriteStudio6_RootEffect>(); instanceSequenceNew = gameObjectNew.GetComponent <Script_SpriteStudio6_Sequence>(); if (null != instanceRootNew) { InstanceReplicate.OriginalSet(instanceRootNew); // instanceRootNew = null; instanceRootEffectNew = null; instanceSequenceNew = null; } else if (null != instanceRootEffectNew) { InstanceReplicate.OriginalSet(instanceRootEffectNew); instanceRootNew = null; // instanceRootEffectNew = null; instanceSequenceNew = null; } else if (null != instanceSequenceNew) { InstanceReplicate.OriginalSet(instanceSequenceNew); instanceRootNew = null; instanceRootEffectNew = null; // instanceSequenceNew = null; } // else // { // PropertyRootOriginal.objectReferenceValue = null; // PropertyRootEffectOriginal.objectReferenceValue = null; // PropertySequenceOriginal.objectReferenceValue = null; // } } instanceRoot = instanceRootNew; instanceRootEffect = instanceRootEffectNew; instanceSequence = instanceSequenceNew; flagUpdate |= true; } /* Hide */ PropertyHideForce.boolValue = EditorGUILayout.Toggle("Hide Force", PropertyHideForce.boolValue); // EditorGUILayout.Space(); EditorGUI.indentLevel = levelIndent; if (true == flagUpdate) { PropertyRootOriginal.objectReferenceValue = instanceRoot; PropertyRootEffectOriginal.objectReferenceValue = instanceRootEffect; PropertySequenceOriginal.objectReferenceValue = instanceSequence; } serializedObject.ApplyModifiedProperties(); }
private void InformationPlay(ref bool flagUpdate, Script_SpriteStudio6_DataProject dataProject, Script_SpriteStudio6_Sequence instanceSequence ) { int indexCursor; /* "Sequence-Pack" Select */ string nameSequencePack = PropertyNameSequencePack.stringValue; int indexSequencePack; string[] tableNameSequence; ListGetSequencePack(out tableNameSequence, out indexSequencePack, dataProject, nameSequencePack); indexCursor = EditorGUILayout.Popup("Sequence-Pack Name", indexSequencePack, tableNameSequence); if (indexCursor != indexSequencePack) { flagUpdate |= true; indexSequencePack = indexCursor; } Script_SpriteStudio6_DataSequence dataSequencePack = dataProject.DataSequence[indexSequencePack]; nameSequencePack = dataSequencePack.Name; /* "Sequence" Select */ string nameSequenceData = PropertyNameDataSequence.stringValue; int indexSequenceData; string[] tableNameSequenceData; ListGetSequenceData(out tableNameSequenceData, out indexSequenceData, dataSequencePack, nameSequenceData); indexCursor = EditorGUILayout.Popup("Sequence-Data Name", indexSequenceData, tableNameSequenceData); if (indexCursor != indexSequenceData) { flagUpdate |= true; indexSequenceData = indexCursor; } nameSequenceData = dataSequencePack.TableSequence[indexSequenceData].Name; /* Initial Step */ int indexStepInitial = EditorGUILayout.IntField("Start Step", PropertyIndexStepInitial.intValue); if (PropertyIndexStepInitial.intValue != indexStepInitial) { flagUpdate |= true; int countStep = dataSequencePack.TableSequence[indexSequenceData].TableStep.Length; if (0 > indexStepInitial) { indexStepInitial = 0; } if (countStep <= indexStepInitial) { indexStepInitial = countStep - 1; } } /* Initial Stop */ bool flagUpdateInitialStop = false; bool flagCheck = EditorGUILayout.Toggle("Initial Stop", PropertyStopInitial.boolValue); if (flagCheck != PropertyStopInitial.boolValue) { flagUpdateInitialStop |= true; PropertyStopInitial.boolValue = flagCheck; } /* Reset */ EditorGUILayout.Space(); if (true == GUILayout.Button("Reset (Reinitialize)")) { PropertyHideForce.boolValue = false; PropertyColliderInterlockHideForce.boolValue = false; PropertyFlagPlanarization.boolValue = false; indexSequencePack = 0; dataSequencePack = dataProject.DataSequence[indexSequencePack]; nameSequencePack = dataSequencePack.Name; indexSequenceData = 0; nameSequenceData = dataSequencePack.TableSequence[indexSequenceData].Name; indexStepInitial = 0; flagUpdate = true; /* Force */ } /* Check Update */ if (true == flagUpdate) { /* Update Properties */ PropertyNameSequencePack.stringValue = nameSequencePack; PropertyNameDataSequence.stringValue = nameSequenceData; PropertyIndexStepInitial.intValue = indexStepInitial; /* Play Start */ instanceSequence.Stop(false, false); if (true == instanceSequence.PackSet(indexSequencePack)) { if (true == instanceSequence.SequenceSet(indexSequenceData)) { instanceSequence.Play(indexStepInitial); } } } flagUpdate |= flagUpdateInitialStop; }
private void OriginalCleanUp() { InstanceRootOriginal = null; InstanceRootEffectOriginal = null; InstanceSequenceOriginal = null; }