public override void OnXGUI() { targetComponent = ( Component )CreateObjectField( "target", targetComponent, typeof( Component ) ); if( null == targetComponent ) { CreateMessageField( "Drag a Component.", MessageType.None ); } else { if( CreateSpaceButton( "Clean" ) ) { isDirty = true; } if( isDirty ) { isDirty = false; mProperties.Clear(); targetProperty = null; // targetComponent.GetType(). foreach( var item in targetComponent.GetType().GetFields() ) { if( targetComponent.GetType() == item.DeclaringType && !item.IsNotSerialized ) { mProperties.Add( item ); } } } for( int pos = 0; pos < mProperties.Count; pos++ ) { if( CreateSpaceButton( mProperties[pos].Name ) ) { targetProperty = mProperties[pos]; mProperties.Clear(); } } if( null != targetProperty ) { if( CreateSpaceButton( targetProperty.Name ) ) { isDirty = true; } #if TINYTIME if(targetProperty.FieldType == typeof(System.Collections.Generic.List<TutorialModel>) ){ List<TutorialModel>list = (List<TutorialModel>)targetProperty.GetValue(targetComponent); for( int pos = 0; pos < list.Count; pos++ ){ BeginHorizontal(); CreateStringField(pos.ToString(), list[pos].title); if(CreateSpaceButton("Insert")){ list.Insert(pos,new TutorialModel()); } if(CreateSpaceButton("Delete")){ list.RemoveAt(pos); } EndHorizontal(); } if( 0 < list.Count && CreateSpaceButton("Export")){ string path = XFileExtension.CreateFileWithFormat("File","xml"); GetElements(list, path); } } if(targetProperty.FieldType == typeof(System.Collections.Generic.List<TextModelItem>) && null != targetComponent){ List<TextModelItem>list = (List<TextModelItem>)targetProperty.GetValue(targetComponent); if(Selection.gameObjects.Length > 0){ GameObject[] arrays = Selection.gameObjects; List<TextModel> model = new List<TextModel>(); for( int pos = 0; pos < arrays.Length; pos++ ){ TextModel item = arrays[pos].transform.GetComponent<TextModel>(); if( null != item ){ model.Add(item); } } if(model.Count > 0){ if(CreateSpaceButton("Add TextModel")){ for(int pos = 0; pos < model.Count; pos++){ bool isExist = false; for(int listLoop = 0; listLoop < list.Count; listLoop++ ){ if(list[listLoop].modelText.Equals(model[pos].GetComponent<TMPro.TextMeshProUGUI>())){ isExist = true; list[listLoop].xmlCmd = model[pos].xmlCmd; } } if(!isExist){ TextModelItem modelitem = new TextModelItem(); modelitem.modelText = model[pos].GetComponent<TMPro.TextMeshProUGUI>(); modelitem.xmlCmd = model[pos].xmlCmd; list.Add(modelitem); } Undo.DestroyObjectImmediate(model[pos]); GameObject.DestroyImmediate(model[pos]); } } }else{ CreateMessageField("Selected TextMeshProUGUI Components", MessageType.None); } } } #endif } } }
public override void OnXGUI() { targetComponent = ( Component )CreateObjectField("target", targetComponent, typeof(Component)); if (null == targetComponent) { CreateMessageField("Drag a Component.", MessageType.None); } else { if (CreateSpaceButton("Clean")) { isDirty = true; } if (isDirty) { isDirty = false; mProperties.Clear(); targetProperty = null; // targetComponent.GetType(). foreach (var item in targetComponent.GetType().GetFields()) { if (targetComponent.GetType() == item.DeclaringType && !item.IsNotSerialized) { mProperties.Add(item); } } } for (int pos = 0; pos < mProperties.Count; pos++) { if (CreateSpaceButton(mProperties[pos].Name)) { targetProperty = mProperties[pos]; mProperties.Clear(); } } if (null != targetProperty) { if (CreateSpaceButton(targetProperty.Name)) { isDirty = true; } #if TINYTIME if (targetProperty.FieldType == typeof(System.Collections.Generic.List <TutorialModel>)) { List <TutorialModel> list = (List <TutorialModel>)targetProperty.GetValue(targetComponent); for (int pos = 0; pos < list.Count; pos++) { BeginHorizontal(); CreateStringField(pos.ToString(), list[pos].title); if (CreateSpaceButton("Insert")) { list.Insert(pos, new TutorialModel()); } if (CreateSpaceButton("Delete")) { list.RemoveAt(pos); } EndHorizontal(); } if (0 < list.Count && CreateSpaceButton("Export")) { string path = XFileExtension.CreateFileWithFormat("File", "xml"); GetElements(list, path); } } if (targetProperty.FieldType == typeof(System.Collections.Generic.List <TextModelItem>) && null != targetComponent) { List <TextModelItem> list = (List <TextModelItem>)targetProperty.GetValue(targetComponent); if (Selection.gameObjects.Length > 0) { GameObject[] arrays = Selection.gameObjects; List <TextModel> model = new List <TextModel>(); for (int pos = 0; pos < arrays.Length; pos++) { TextModel item = arrays[pos].transform.GetComponent <TextModel>(); if (null != item) { model.Add(item); } } if (model.Count > 0) { if (CreateSpaceButton("Add TextModel")) { for (int pos = 0; pos < model.Count; pos++) { bool isExist = false; for (int listLoop = 0; listLoop < list.Count; listLoop++) { if (list[listLoop].modelText.Equals(model[pos].GetComponent <TMPro.TextMeshProUGUI>())) { isExist = true; list[listLoop].xmlCmd = model[pos].xmlCmd; } } if (!isExist) { TextModelItem modelitem = new TextModelItem(); modelitem.modelText = model[pos].GetComponent <TMPro.TextMeshProUGUI>(); modelitem.xmlCmd = model[pos].xmlCmd; list.Add(modelitem); } Undo.DestroyObjectImmediate(model[pos]); GameObject.DestroyImmediate(model[pos]); } } } else { CreateMessageField("Selected TextMeshProUGUI Components", MessageType.None); } } } #endif } } }