public override void OnInspectorGUI() { //base.OnInspectorGUI(); if (!T23_EditorUtility.GuideJoinMaster(master, body, body.groupID, 2)) { return; } serializedObject.Update(); T23_EditorUtility.ShowTitle("Action"); if (master) { GUILayout.Box("[#" + body.groupID.ToString() + "] " + body.title, T23_EditorUtility.HeadlineStyle()); T23_EditorUtility.ShowSwapButton(master, body.title); body.priority = master.actionTitles.IndexOf(body.title); } else { body.groupID = EditorGUILayout.IntField("Group ID", body.groupID); body.priority = EditorGUILayout.IntField("Priority", body.priority); } SerializedProperty recieverProp = serializedObject.FindProperty("recievers"); if (recieverReorderableList == null) { recieverReorderableList = new ReorderableList(serializedObject, recieverProp); recieverReorderableList.draggable = true; recieverReorderableList.displayAdd = true; recieverReorderableList.drawHeaderCallback = rect => EditorGUI.LabelField(rect, "Recievers"); recieverReorderableList.drawElementCallback = (rect, index, isActive, isFocused) => { rect.height = EditorGUIUtility.singleLineHeight; body.recievers[index] = (GameObject)EditorGUI.ObjectField(rect, body.recievers[index], typeof(GameObject), true); }; } recieverReorderableList.DoLayoutList(); EditorGUI.BeginChangeCheck(); T23_EditorUtility.PropertyBoxField(serializedObject, "operation", "propertyBox", "usePropertyBox", () => operation = (ToggleOperation)EditorGUILayout.EnumPopup("Operation", GetOperation())); if (body.usePropertyBox && body.toggle) { serializedObject.FindProperty("toggle").boolValue = false; } if (EditorGUI.EndChangeCheck()) { SelectOperation(); } if (!master || master.randomize) { prop = serializedObject.FindProperty("randomAvg"); EditorGUILayout.PropertyField(prop); } serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { //base.OnInspectorGUI(); if (!T23_EditorUtility.GuideJoinMaster(master, body, body.groupID, 1)) { return; } serializedObject.Update(); T23_EditorUtility.ShowTitle("Trigger"); if (master) { GUILayout.Box("[#" + body.groupID.ToString() + "] " + body.title, T23_EditorUtility.HeadlineStyle()); } else { body.groupID = EditorGUILayout.IntField("Group ID", body.groupID); } var station = body.GetComponent <VRCStation>(); if (!station) { EditorGUILayout.HelpBox("VRC Station が必要です。", MessageType.Warning); } prop = serializedObject.FindProperty("localOnly"); EditorGUILayout.PropertyField(prop); serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { //base.OnInspectorGUI(); if (!UdonSharpEditorUtility.IsProxyBehaviour(body)) { UdonSharpGUI.DrawConvertToUdonBehaviourButton(body); return; } serializedObject.Update(); T23_EditorUtility.ShowTitle("Option"); GUILayout.Box("CommonBuffer", T23_EditorUtility.HeadlineStyle()); UdonSharpProgramAsset programAsset = UdonSharpEditorUtility.GetUdonSharpProgramAsset((UdonSharpBehaviour)target); UdonSharpGUI.DrawCompileErrorTextArea(programAsset); if (GUILayout.Button("Set Broadcasts")) { body.broadcasts = T23_EditorUtility.TakeCommonBuffersRelate(body); } if (GUILayout.Button("Join Empty Broadcasts")) { T23_EditorUtility.JoinAllBufferingBroadcasts(body); } prop = serializedObject.FindProperty("autoJoin"); EditorGUILayout.PropertyField(prop); prop = serializedObject.FindProperty("broadcasts"); EditorGUILayout.PropertyField(prop); serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { //base.OnInspectorGUI(); if (!T23_EditorUtility.GuideJoinMaster(master, body, body.groupID, 1)) { return; } serializedObject.Update(); T23_EditorUtility.ShowTitle("Trigger"); if (master) { GUILayout.Box("[#" + body.groupID.ToString() + "] " + body.title, T23_EditorUtility.HeadlineStyle()); } else { body.groupID = EditorGUILayout.IntField("Group ID", body.groupID); } prop = serializedObject.FindProperty("channel"); prop.intValue = System.Convert.ToInt32(EditorGUILayout.EnumPopup("Channel", (VRC_MidiNoteIn.Channel)body.channel)); prop = serializedObject.FindProperty("note"); prop.intValue = System.Convert.ToInt32(EditorGUILayout.EnumPopup("Note", (VRC_MidiNoteIn.Note)body.note)); serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { //base.OnInspectorGUI(); if (!T23_EditorUtility.GuideJoinMaster(master, body, body.groupID, 1)) { return; } serializedObject.Update(); T23_EditorUtility.ShowTitle("Trigger"); if (master) { GUILayout.Box("[#" + body.groupID.ToString() + "] " + body.title, T23_EditorUtility.HeadlineStyle()); } else { body.groupID = EditorGUILayout.IntField("Group ID", body.groupID); } prop = serializedObject.FindProperty("inputValue"); prop.boolValue = (InputValue)EditorGUILayout.EnumPopup("Value", (InputValue)System.Convert.ToInt32(body.inputValue)) == InputValue.Down; prop.intValue = (int)(HandType)EditorGUILayout.EnumPopup("Hand", (HandType)System.Convert.ToInt32(body.hand)); serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { //base.OnInspectorGUI(); if (!T23_EditorUtility.GuideJoinMaster(master, body, body.groupID, 2)) { return; } serializedObject.Update(); T23_EditorUtility.ShowTitle("Action"); if (master) { GUILayout.Box("[#" + body.groupID.ToString() + "] " + body.title, T23_EditorUtility.HeadlineStyle()); T23_EditorUtility.ShowSwapButton(master, body.title); body.priority = master.actionTitles.IndexOf(body.title); } else { body.groupID = EditorGUILayout.IntField("Group ID", body.groupID); body.priority = EditorGUILayout.IntField("Priority", body.priority); } T23_EditorUtility.PropertyBoxField(serializedObject, "gravityStrength", "propertyBox", "usePropertyBox"); if (!master || master.randomize) { prop = serializedObject.FindProperty("randomAvg"); EditorGUILayout.PropertyField(prop); } serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { //base.OnInspectorGUI(); if (!T23_EditorUtility.GuideJoinMaster(master, body, body.groupID, 1)) { return; } serializedObject.Update(); T23_EditorUtility.ShowTitle("Trigger"); if (master) { GUILayout.Box("[#" + body.groupID.ToString() + "] " + body.title, T23_EditorUtility.HeadlineStyle()); } else { body.groupID = EditorGUILayout.IntField("Group ID", body.groupID); } prop = serializedObject.FindProperty("key"); EditorGUILayout.PropertyField(prop); prop = serializedObject.FindProperty("keyFree"); EditorGUILayout.PropertyField(prop); serializedObject.ApplyModifiedProperties(); }
static T23_AutoUpdateCommonBuffers() { EditorApplication.hierarchyWindowItemOnGUI += delegate(int instanceID, Rect selectionRect) { if (Event.current.commandName == "Duplicate" || Event.current.commandName == "SoftDelete" || Event.current.commandName == "UndoRedoPerformed") { T23_EditorUtility.UpdateAllCommonBuffersRelate(); } }; }
public override void OnInspectorGUI() { //base.OnInspectorGUI(); if (!T23_EditorUtility.GuideJoinMaster(master, body, body.groupID, 2)) { return; } serializedObject.Update(); T23_EditorUtility.ShowTitle("Action"); if (master) { GUILayout.Box("[#" + body.groupID.ToString() + "] " + body.title, T23_EditorUtility.HeadlineStyle()); T23_EditorUtility.ShowSwapButton(master, body.title); body.priority = master.actionTitles.IndexOf(body.title); } else { body.groupID = EditorGUILayout.IntField("Group ID", body.groupID); body.priority = EditorGUILayout.IntField("Priority", body.priority); } SerializedProperty recieverProp = serializedObject.FindProperty("recievers"); if (recieverReorderableList == null) { recieverReorderableList = new ReorderableList(serializedObject, recieverProp); recieverReorderableList.draggable = true; recieverReorderableList.displayAdd = true; recieverReorderableList.drawHeaderCallback = rect => EditorGUI.LabelField(rect, "Recievers"); recieverReorderableList.drawElementCallback = (rect, index, isActive, isFocused) => { rect.height = EditorGUIUtility.singleLineHeight; body.recievers[index] = (Rigidbody)EditorGUI.ObjectField(rect, body.recievers[index], typeof(Rigidbody), true); }; } recieverReorderableList.DoLayoutList(); T23_EditorUtility.PropertyBoxField(serializedObject, "force", "propertyBox", "usePropertyBox"); prop = serializedObject.FindProperty("useWorldSpace"); EditorGUILayout.PropertyField(prop); prop = serializedObject.FindProperty("takeOwnership"); EditorGUILayout.PropertyField(prop); if (!master || master.randomize) { prop = serializedObject.FindProperty("randomAvg"); EditorGUILayout.PropertyField(prop); } serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { //base.OnInspectorGUI(); if (!T23_EditorUtility.GuideJoinMaster(master, body, body.groupID, 2)) { return; } serializedObject.Update(); T23_EditorUtility.ShowTitle("Action"); if (master) { GUILayout.Box("[#" + body.groupID.ToString() + "] " + body.title, T23_EditorUtility.HeadlineStyle()); T23_EditorUtility.ShowSwapButton(master, body.title); body.priority = master.actionTitles.IndexOf(body.title); } else { body.groupID = EditorGUILayout.IntField("Group ID", body.groupID); body.priority = EditorGUILayout.IntField("Priority", body.priority); } EditorGUILayout.HelpBox("SpawnObject は推奨されません。 VRC_ObjectPool の利用を検討してください。SpawnObjectPool で使用できます。", MessageType.Warning); prop = serializedObject.FindProperty("prefab"); EditorGUILayout.PropertyField(prop); SerializedProperty recieverProp = serializedObject.FindProperty("locations"); if (recieverReorderableList == null) { recieverReorderableList = new ReorderableList(serializedObject, recieverProp); recieverReorderableList.draggable = true; recieverReorderableList.displayAdd = true; recieverReorderableList.drawHeaderCallback = rect => EditorGUI.LabelField(rect, "Locations"); recieverReorderableList.drawElementCallback = (rect, index, isActive, isFocused) => { rect.height = EditorGUIUtility.singleLineHeight; body.locations[index] = (Transform)EditorGUI.ObjectField(rect, body.locations[index], typeof(Transform), true); }; } recieverReorderableList.DoLayoutList(); if (!master || master.randomize) { prop = serializedObject.FindProperty("randomAvg"); EditorGUILayout.PropertyField(prop); } serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { //base.OnInspectorGUI(); if (!T23_EditorUtility.GuideJoinMaster(master, body, body.groupID, 2)) { return; } serializedObject.Update(); T23_EditorUtility.ShowTitle("Action"); if (master) { GUILayout.Box("[#" + body.groupID.ToString() + "] " + body.title, T23_EditorUtility.HeadlineStyle()); T23_EditorUtility.ShowSwapButton(master, body.title); body.priority = master.actionTitles.IndexOf(body.title); } else { body.groupID = EditorGUILayout.IntField("Group ID", body.groupID); body.priority = EditorGUILayout.IntField("Priority", body.priority); } SerializedProperty recieverProp = serializedObject.FindProperty("recievers"); if (recieverReorderableList == null) { recieverReorderableList = new ReorderableList(serializedObject, recieverProp); recieverReorderableList.draggable = true; recieverReorderableList.displayAdd = true; recieverReorderableList.drawHeaderCallback = rect => EditorGUI.LabelField(rect, "Recievers"); recieverReorderableList.drawElementCallback = (rect, index, isActive, isFocused) => { rect.height = EditorGUIUtility.singleLineHeight; body.recievers[index] = (AudioSource)EditorGUI.ObjectField(rect, body.recievers[index], typeof(AudioSource), true); }; } recieverReorderableList.DoLayoutList(); prop = serializedObject.FindProperty("operation"); prop.boolValue = (PauseOperation)EditorGUILayout.EnumPopup("Operation", (PauseOperation)System.Convert.ToInt32(body.operation)) == PauseOperation.Pause; if (!master || master.randomize) { prop = serializedObject.FindProperty("randomAvg"); EditorGUILayout.PropertyField(prop); } serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { //base.OnInspectorGUI(); if (!T23_EditorUtility.GuideJoinMaster(master, body, body.groupID, 2)) { return; } serializedObject.Update(); T23_EditorUtility.ShowTitle("Action"); if (master) { GUILayout.Box("[#" + body.groupID.ToString() + "] " + body.title, T23_EditorUtility.HeadlineStyle()); T23_EditorUtility.ShowSwapButton(master, body.title); body.priority = master.actionTitles.IndexOf(body.title); } else { body.groupID = EditorGUILayout.IntField("Group ID", body.groupID); body.priority = EditorGUILayout.IntField("Priority", body.priority); } prop = serializedObject.FindProperty("triggeredPlayer"); prop.boolValue = (TargetPlayer)EditorGUILayout.EnumPopup("Target Player", (TargetPlayer)System.Convert.ToInt32(body.triggeredPlayer)) == TargetPlayer.TriggeredPlayer; if (body.triggeredPlayer) { EditorGUILayout.HelpBox("TriggeredPlayer は、BroadcastLocalでのみ有効です", MessageType.Info); } prop = serializedObject.FindProperty("distanceFar"); EditorGUILayout.PropertyField(prop); prop = serializedObject.FindProperty("distanceNear"); EditorGUILayout.PropertyField(prop); prop = serializedObject.FindProperty("gain"); EditorGUILayout.PropertyField(prop); prop = serializedObject.FindProperty("lowpass"); EditorGUILayout.PropertyField(prop); prop = serializedObject.FindProperty("volumetricRadius"); EditorGUILayout.PropertyField(prop); if (!master || master.randomize) { prop = serializedObject.FindProperty("randomAvg"); EditorGUILayout.PropertyField(prop); } serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { //base.OnInspectorGUI(); if (!T23_EditorUtility.GuideJoinMaster(master, body, body.groupID, 2)) { return; } serializedObject.Update(); T23_EditorUtility.ShowTitle("Action"); if (master) { GUILayout.Box("[#" + body.groupID.ToString() + "] " + body.title, T23_EditorUtility.HeadlineStyle()); T23_EditorUtility.ShowSwapButton(master, body.title); body.priority = master.actionTitles.IndexOf(body.title); } else { body.groupID = EditorGUILayout.IntField("Group ID", body.groupID); body.priority = EditorGUILayout.IntField("Priority", body.priority); } prop = serializedObject.FindProperty("byValue"); EditorGUILayout.PropertyField(prop); if (body.byValue) { T23_EditorUtility.PropertyBoxField(serializedObject, "teleportPosition", "positionPropertyBox", "positionUsePropertyBox"); T23_EditorUtility.PropertyBoxField(serializedObject, "teleportRotation", "rotationPropertyBox", "rotationUsePropertyBox"); } else { prop = serializedObject.FindProperty("teleportLocation"); EditorGUILayout.PropertyField(prop); } prop = serializedObject.FindProperty("teleportOrientation"); EditorGUILayout.PropertyField(prop); prop = serializedObject.FindProperty("lerpOnRemote"); EditorGUILayout.PropertyField(prop); if (!master || master.randomize) { prop = serializedObject.FindProperty("randomAvg"); EditorGUILayout.PropertyField(prop); } serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { //base.OnInspectorGUI(); if (!UdonSharpEditorUtility.IsProxyBehaviour(body)) { UdonSharpGUI.DrawConvertToUdonBehaviourButton(body); return; } T23_EditorUtility.ShowTitle("Option"); GUILayout.Box("ConnectFromUdon", T23_EditorUtility.HeadlineStyle()); serializedObject.Update(); prop = serializedObject.FindProperty("target"); EditorGUILayout.PropertyField(prop); /* * List<string> customNameList = new List<string>(); * if (body.target) * { * customNameList = GetCustomNameList(body.target); * if (customNameList.Count == 0) * { * EditorGUILayout.HelpBox("CustomTrigger が含まれていない、\nまたは、CustomTrigger Name が未記入です。", MessageType.Warning); * } * } * if (customNameList.Count > 0) * { * var index = EditorGUILayout.Popup("Custom Trigger Name", customNameList.IndexOf(body.customTriggerName), customNameList.ToArray()); * serializedObject.FindProperty("customTriggerName").stringValue = index >= 0 ? customNameList[index] : ""; * } * else */ { prop = serializedObject.FindProperty("customTriggerName"); EditorGUILayout.PropertyField(prop); } serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { //base.OnInspectorGUI(); if (!T23_EditorUtility.GuideJoinMaster(master, body, body.groupID, 2)) { return; } serializedObject.Update(); T23_EditorUtility.ShowTitle("Action"); if (master) { GUILayout.Box("[#" + body.groupID.ToString() + "] " + body.title, T23_EditorUtility.HeadlineStyle()); T23_EditorUtility.ShowSwapButton(master, body.title); body.priority = master.actionTitles.IndexOf(body.title); } else { body.groupID = EditorGUILayout.IntField("Group ID", body.groupID); body.priority = EditorGUILayout.IntField("Priority", body.priority); } prop = serializedObject.FindProperty("audioBank"); EditorGUILayout.PropertyField(prop); serializedObject.FindProperty("command").intValue = (int)(Command)EditorGUILayout.EnumPopup("Command", (Command)body.command); if (body.command == 0) { prop = serializedObject.FindProperty("index"); EditorGUILayout.PropertyField(prop); } if (!master || master.randomize) { prop = serializedObject.FindProperty("randomAvg"); EditorGUILayout.PropertyField(prop); } serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { //base.OnInspectorGUI(); if (!T23_EditorUtility.GuideJoinMaster(master, body, body.groupID, 2)) { return; } serializedObject.Update(); T23_EditorUtility.ShowTitle("Action"); if (master) { GUILayout.Box("[#" + body.groupID.ToString() + "] " + body.title, T23_EditorUtility.HeadlineStyle()); T23_EditorUtility.ShowSwapButton(master, body.title); body.priority = master.actionTitles.IndexOf(body.title); } else { body.groupID = EditorGUILayout.IntField("Group ID", body.groupID); body.priority = EditorGUILayout.IntField("Priority", body.priority); } prop = serializedObject.FindProperty("udonBehaviour"); EditorGUILayout.PropertyField(prop); prop = serializedObject.FindProperty("method"); EditorGUILayout.PropertyField(prop); prop = serializedObject.FindProperty("ownershipControl"); prop.intValue = System.Convert.ToInt32(EditorGUILayout.EnumPopup("Ownership Control", (OwnershipControl)body.ownershipControl)); if (!master || master.randomize) { prop = serializedObject.FindProperty("randomAvg"); EditorGUILayout.PropertyField(prop); } serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { //base.OnInspectorGUI(); if (!T23_EditorUtility.GuideJoinMaster(master, body, body.groupID, 1)) { return; } serializedObject.Update(); T23_EditorUtility.ShowTitle("Trigger"); if (master) { GUILayout.Box("[#" + body.groupID.ToString() + "] " + body.title, T23_EditorUtility.HeadlineStyle()); } else { body.groupID = EditorGUILayout.IntField("Group ID", body.groupID); } EditorGUI.BeginChangeCheck(); UdonSharpProgramAsset programAsset = UdonSharpEditorUtility.GetUdonSharpProgramAsset((UdonSharpBehaviour)target); UdonSharpGUI.DrawInteractSettings(target); if (EditorGUI.EndChangeCheck()) { if (master) { UdonBehaviour behaviour = UdonSharpEditorUtility.GetBackingUdonBehaviour((UdonSharpBehaviour)target); master.interactText = behaviour.interactText; master.proximity = behaviour.proximity; master.OrderComponents(); } } serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { //base.OnInspectorGUI(); if (!T23_EditorUtility.GuideJoinMaster(master, body, body.groupID, 1)) { return; } serializedObject.Update(); T23_EditorUtility.ShowTitle("Trigger"); if (master) { GUILayout.Box("[#" + body.groupID.ToString() + "] " + body.title, T23_EditorUtility.HeadlineStyle()); } else { body.groupID = EditorGUILayout.IntField("Group ID", body.groupID); } var pickup = body.GetComponent <VRC_Pickup>(); if (pickup) { if (pickup.AutoHold != VRC_Pickup.AutoHoldMode.Yes) { EditorGUILayout.HelpBox("VRC_Pickup の AutoHold を Yes にする必要があります。", MessageType.Warning); } } else { EditorGUILayout.HelpBox("VRC_Pickup が必要です。", MessageType.Warning); } serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { //base.OnInspectorGUI(); if (!T23_EditorUtility.GuideJoinMaster(master, body, body.groupID, 2)) { return; } serializedObject.Update(); T23_EditorUtility.ShowTitle("Action"); if (master) { GUILayout.Box("[#" + body.groupID.ToString() + "] " + body.title, T23_EditorUtility.HeadlineStyle()); T23_EditorUtility.ShowSwapButton(master, body.title); body.priority = master.actionTitles.IndexOf(body.title); } else { body.groupID = EditorGUILayout.IntField("Group ID", body.groupID); body.priority = EditorGUILayout.IntField("Priority", body.priority); } prop = serializedObject.FindProperty("objectPool"); EditorGUILayout.PropertyField(prop); EditorGUILayout.HelpBox("無条件でObject PoolのOwnershipを取得します。", MessageType.Info); if (!master || master.randomize) { prop = serializedObject.FindProperty("randomAvg"); EditorGUILayout.PropertyField(prop); } serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { //base.OnInspectorGUI(); master.CheckComponents(); serializedObject.Update(); T23_EditorUtility.ShowTitle("Master"); GUILayout.Box("Group #" + master.groupID.ToString(), T23_EditorUtility.HeadlineStyle(true)); GUILayout.Space(10); SerializedProperty broadcastProp = serializedObject.FindProperty("broadcastTitles"); if (broadcastReorderableList == null) { broadcastReorderableList = new ReorderableList(serializedObject, broadcastProp); broadcastReorderableList.draggable = true; broadcastReorderableList.drawHeaderCallback = rect => EditorGUI.LabelField(rect, "Broadcast"); broadcastReorderableList.drawElementCallback = (rect, index, isActive, isFocused) => { rect.height = EditorGUIUtility.singleLineHeight; EditorGUI.LabelField(rect, master.broadcastTitles[index]); }; broadcastReorderableList.onAddDropdownCallback = (Rect buttonRect, ReorderableList list) => { var menu = new GenericMenu(); var assetList = T23_EditorUtility.GetProgramAssets("Broadcast"); foreach (var pair in assetList) { menu.AddItem(new GUIContent(pair.Key), false, () => { master.SetBroadcast(pair.Value); }); } menu.DropDown(buttonRect); }; broadcastReorderableList.onChangedCallback = ChangeBroadcast; } broadcastReorderableList.DoLayoutList(); /* * EditorGUILayout.BeginHorizontal(); * setBroadcast = (UdonSharpProgramAsset)EditorGUILayout.ObjectField("New Broadcast", setBroadcast, typeof(UdonSharpProgramAsset), false); * if (GUILayout.Button("Set")) * { * EditorApplication.delayCall += () => SetBroadcast(); * } * EditorGUILayout.EndHorizontal(); */ GUILayout.Space(10); SerializedProperty triggerProp = serializedObject.FindProperty("triggerTitles"); if (triggerReorderableList == null) { triggerReorderableList = new ReorderableList(serializedObject, triggerProp); triggerReorderableList.draggable = true; triggerReorderableList.drawHeaderCallback = rect => EditorGUI.LabelField(rect, "Trigger"); triggerReorderableList.drawElementCallback = (rect, index, isActive, isFocused) => { rect.height = EditorGUIUtility.singleLineHeight; EditorGUI.LabelField(rect, master.triggerTitles[index]); }; triggerReorderableList.onAddDropdownCallback = (Rect buttonRect, ReorderableList list) => { var menu = new GenericMenu(); var assetList = T23_EditorUtility.GetProgramAssets("Trigger"); foreach (var pair in assetList) { menu.AddItem(new GUIContent(pair.Key), false, () => { master.AddTrigger(pair.Value); }); } menu.DropDown(buttonRect); }; triggerReorderableList.onChangedCallback = ChangeTrigger; } triggerReorderableList.DoLayoutList(); /* * EditorGUILayout.BeginHorizontal(); * addTrigger = (UdonSharpProgramAsset)EditorGUILayout.ObjectField("New Trigger", addTrigger, typeof(UdonSharpProgramAsset), false); * if (GUILayout.Button("Add")) * { * AddTrigger(); * } * EditorGUILayout.EndHorizontal(); */ GUILayout.Space(10); SerializedProperty actionProp = serializedObject.FindProperty("actionTitles"); if (actionReorderableList == null) { actionReorderableList = new ReorderableList(serializedObject, actionProp); actionReorderableList.draggable = true; actionReorderableList.drawHeaderCallback = rect => EditorGUI.LabelField(rect, "Action"); actionReorderableList.drawElementCallback = (rect, index, isActive, isFocused) => { rect.height = EditorGUIUtility.singleLineHeight; EditorGUI.LabelField(rect, master.actionTitles[index]); }; actionReorderableList.onAddDropdownCallback = (Rect buttonRect, ReorderableList list) => { var menu = new GenericMenu(); var assetList = T23_EditorUtility.GetProgramAssets("Action"); foreach (var pair in assetList) { menu.AddItem(new GUIContent(pair.Key), false, () => { master.AddAction(pair.Value); }); } menu.DropDown(buttonRect); }; actionReorderableList.onChangedCallback = ChangeAction; } actionReorderableList.DoLayoutList(); /* * EditorGUILayout.BeginHorizontal(); * addAction = (UdonSharpProgramAsset)EditorGUILayout.ObjectField("New Action", addAction, typeof(UdonSharpProgramAsset), false); * if (GUILayout.Button("Add")) * { * AddAction(); * } * EditorGUILayout.EndHorizontal(); */ GUILayout.Space(10); EditorGUI.BeginChangeCheck(); EditorGUI.BeginDisabledGroup(master.hasObjectSync); serializedObject.FindProperty("reliable").boolValue = EditorGUILayout.Toggle("SyncMethod Manual", master.reliable); EditorGUI.EndDisabledGroup(); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); master.OrderComponents(); serializedObject.Update(); } if (master.hasObjectSync) { EditorGUILayout.HelpBox("VRC_ObjectSync が存在するため、Synchronize Method は Continuous に設定されています。", MessageType.Info); } if (master.shouldMoveComponents) { Object prefab = PrefabUtility.GetCorrespondingObjectFromSource(master.gameObject); string msg = ""; if (prefab == null) { if (master.MoveComponents()) { master.shouldMoveComponents = false; } else { msg = "コンポーネントが正しく整列できません。"; } } else { msg = "コンポーネントがPrefab内にある場合、整列できません。"; } if (msg != "") { EditorGUILayout.BeginHorizontal(); EditorGUILayout.HelpBox(msg, MessageType.Warning); if (GUILayout.Button("Clear")) { master.shouldMoveComponents = false; } EditorGUILayout.EndHorizontal(); } } serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { //base.OnInspectorGUI(); if (!T23_EditorUtility.GuideJoinMaster(master, body, body.groupID, 2)) { return; } serializedObject.Update(); T23_EditorUtility.ShowTitle("Action"); if (master) { GUILayout.Box("[#" + body.groupID.ToString() + "] " + body.title, T23_EditorUtility.HeadlineStyle()); T23_EditorUtility.ShowSwapButton(master, body.title); body.priority = master.actionTitles.IndexOf(body.title); } else { body.groupID = EditorGUILayout.IntField("Group ID", body.groupID); body.priority = EditorGUILayout.IntField("Priority", body.priority); } SerializedProperty recieverProp = serializedObject.FindProperty("recievers"); if (recieverReorderableList == null) { recieverReorderableList = new ReorderableList(serializedObject, recieverProp); recieverReorderableList.draggable = true; recieverReorderableList.displayAdd = true; recieverReorderableList.drawHeaderCallback = rect => EditorGUI.LabelField(rect, "Recievers"); recieverReorderableList.drawElementCallback = (rect, index, isActive, isFocused) => { rect.height = EditorGUIUtility.singleLineHeight; body.recievers[index] = (GameObject)EditorGUI.ObjectField(rect, body.recievers[index], typeof(GameObject), true); }; } recieverReorderableList.DoLayoutList(); /* * List<string> customNameList = new List<string>(); * if (body.recievers != null) * { * foreach (var go in body.recievers) * { * if (go) * { * customNameList.AddRange(GetCustomNameList(go)); * } * } * } * if (customNameList.Count > 0) * { * var index = EditorGUILayout.Popup("Name", customNameList.IndexOf(body.Name), customNameList.ToArray()); * serializedObject.FindProperty("Name").stringValue = index >= 0 ? customNameList[index] : ""; * } * else */ { prop = serializedObject.FindProperty("Name"); EditorGUILayout.PropertyField(prop); } if (!master || master.randomize) { prop = serializedObject.FindProperty("randomAvg"); EditorGUILayout.PropertyField(prop); } serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { //base.OnInspectorGUI(); if (!UdonSharpEditorUtility.IsProxyBehaviour(body)) { UdonSharpGUI.DrawConvertToUdonBehaviourButton(body); return; } T23_EditorUtility.ShowTitle("Option"); GUILayout.Box("PropertyBox", T23_EditorUtility.HeadlineStyle()); UdonSharpProgramAsset programAsset = UdonSharpEditorUtility.GetUdonSharpProgramAsset((UdonSharpBehaviour)target); UdonSharpGUI.DrawCompileErrorTextArea(programAsset); serializedObject.Update(); serializedObject.FindProperty("valueType").intValue = (int)(ValueType)EditorGUILayout.EnumPopup("Value Type", (ValueType)body.valueType); if (body.valueType == 0) { serializedObject.FindProperty("value_b").boolValue = EditorGUILayout.Toggle("Value", body.value_b); } else if (body.valueType == 1) { serializedObject.FindProperty("value_i").intValue = EditorGUILayout.IntField("Value", body.value_i); } else if (body.valueType == 2) { serializedObject.FindProperty("value_f").floatValue = EditorGUILayout.FloatField("Value", body.value_f); } else if (body.valueType == 3) { serializedObject.FindProperty("value_v3").vector3Value = EditorGUILayout.Vector3Field("Value", body.value_v3); } else if (body.valueType == 4) { serializedObject.FindProperty("value_s").stringValue = EditorGUILayout.TextField("Value", body.value_s); } UdonSharpGUI.DrawUILine(Color.gray); serializedObject.FindProperty("trackType").intValue = (int)(TrackType)EditorGUILayout.EnumPopup("Track Type", (TrackType)body.trackType); if (body.trackType != 0) { List <string> spotList = new List <string>(); if (body.trackType == 1) { serializedObject.FindProperty("targetPlayer").intValue = (int)(TargetPlayer)EditorGUILayout.EnumPopup("Target Player", (TargetPlayer)body.targetPlayer); if (body.targetPlayer == 1 || body.targetPlayer == 2) { prop = serializedObject.FindProperty("targetObject"); EditorGUILayout.PropertyField(prop); } if (body.targetPlayer == 2) { List <string> triggerList = new List <string>(); List <UdonSharpBehaviour> usharpList = new List <UdonSharpBehaviour>(); if (body.targetObject) { var udons = body.targetObject.GetComponents <UdonBehaviour>(); foreach (var udon in udons) { UdonSharpBehaviour usharp = UdonSharpEditorUtility.FindProxyBehaviour(udon); if (usharp) { var groupIDField = usharp.GetProgramVariable("groupID") as int?; var titleField = usharp.GetProgramVariable("title") as string; var playerTriggerField = usharp.GetProgramVariable("playerTrigger") as bool?; if (groupIDField != null && titleField != null && playerTriggerField == true) { if (titleField != "") { usharpList.Add(usharp); triggerList.Add($"[#{groupIDField}] {titleField}"); } } } } } var triggerIndex = EditorGUILayout.Popup("Target Trigger", usharpList.IndexOf(body.targetTrigger), triggerList.ToArray()); serializedObject.FindProperty("targetTrigger").objectReferenceValue = triggerIndex >= 0 ? usharpList[triggerIndex] : null; } if (body.targetPlayer == 3) { prop = serializedObject.FindProperty("index"); EditorGUILayout.PropertyField(prop); } if (body.valueType == 0) { spotList.AddRange(PlayerSpot_b); } else if (body.valueType == 2 || body.valueType == 3) { spotList.AddRange(PlayerSpot_v3); } else if (body.valueType == 4) { spotList.AddRange(PlayerSpot_s); } } if (body.trackType == 2) { prop = serializedObject.FindProperty("targetObject"); EditorGUILayout.PropertyField(prop); if (body.valueType == 0) { spotList.AddRange(ObjectSpot_b); } else if (body.valueType == 2 || body.valueType == 3) { spotList.AddRange(ObjectSpot_v3); } } if (body.trackType == 3) { if (body.valueType == 1 || body.valueType == 2) { spotList.AddRange(WorldSpot_if); } } if (body.trackType == 4) { prop = serializedObject.FindProperty("targetObject"); EditorGUILayout.PropertyField(prop); if (body.targetObject) { body.targetComponent = null; serializedObject.FindProperty("spot").stringValue = ""; if (body.valueType == 0) { body.targetComponent = body.targetObject.GetComponent <Toggle>(); if (body.targetComponent != null) { serializedObject.FindProperty("spot").stringValue = "Toggle"; } } if (body.valueType == 1) { body.targetComponent = body.targetObject.GetComponent <Text>(); if (body.targetComponent != null) { serializedObject.FindProperty("spot").stringValue = "Text"; } else { body.targetComponent = body.targetObject.GetComponent <InputField>(); if (body.targetComponent != null) { serializedObject.FindProperty("spot").stringValue = "InputField"; } } } if (body.valueType == 2) { body.targetComponent = body.targetObject.GetComponent <Slider>(); if (body.targetComponent != null) { serializedObject.FindProperty("spot").stringValue = "Slider"; } else { body.targetComponent = body.targetObject.GetComponent <Scrollbar>(); if (body.targetComponent != null) { serializedObject.FindProperty("spot").stringValue = "Scrollbar"; } else { body.targetComponent = body.targetObject.GetComponent <Text>(); if (body.targetComponent != null) { serializedObject.FindProperty("spot").stringValue = "Text"; } else { body.targetComponent = body.targetObject.GetComponent <InputField>(); if (body.targetComponent != null) { serializedObject.FindProperty("spot").stringValue = "InputField"; } } } } } if (body.valueType == 4) { body.targetComponent = body.targetObject.GetComponent <Text>(); if (body.targetComponent != null) { serializedObject.FindProperty("spot").stringValue = "Text"; } else { body.targetComponent = body.targetObject.GetComponent <InputField>(); if (body.targetComponent != null) { serializedObject.FindProperty("spot").stringValue = "InputField"; } } } if (body.targetComponent == null) { EditorGUILayout.HelpBox($"{(ValueType)body.valueType} で取得可能な UI コンポーネントがありません。", MessageType.Error); } else { EditorGUI.BeginDisabledGroup(true); prop = serializedObject.FindProperty("targetComponent"); EditorGUILayout.PropertyField(prop); EditorGUI.EndDisabledGroup(); } } } if (body.trackType == 5) { prop = serializedObject.FindProperty("targetComponent"); prop.objectReferenceValue = EditorGUILayout.ObjectField("Animator", prop.objectReferenceValue, typeof(Animator), true); if (prop.objectReferenceValue != null) { Animator animator = prop.objectReferenceValue as Animator; if (animator) { animator.Update(0); for (int i = 0; i < animator.parameters.Length; i++) { var paramType = animator.GetParameter(i).type; if (body.valueType == 0 && paramType == AnimatorControllerParameterType.Bool) { spotList.Add(animator.GetParameter(i).name); } if (body.valueType == 1 && paramType == AnimatorControllerParameterType.Int) { spotList.Add(animator.GetParameter(i).name); } if (body.valueType == 2 && paramType == AnimatorControllerParameterType.Float) { spotList.Add(animator.GetParameter(i).name); } } } } } if (body.trackType == 6) { if (body.valueType == 2) { spotList.AddRange(ControllerSpot_f); } } if (spotList.Count > 0) { var spotIndex = EditorGUILayout.Popup("Spot", spotList.IndexOf(body.spot), spotList.ToArray()); serializedObject.FindProperty("spot").stringValue = spotIndex >= 0 ? spotList[spotIndex] : ""; } if (body.valueType == 2) { List <string> changeable = new List <string>(); changeable.AddRange(PlayerSpot_v3); changeable.AddRange(ObjectSpot_v3); if (changeable.Contains(body.spot)) { List <string> detailList = new List <string>(SpotDetail_v3_f); var detailIndex = EditorGUILayout.Popup("Spot Detail", detailList.IndexOf(body.spotDetail), SpotDetail_v3_f); serializedObject.FindProperty("spotDetail").stringValue = detailIndex >= 0 ? SpotDetail_v3_f[detailIndex] : ""; } } if (body.valueType == 4) { List <string> detailList = new List <string>(SpotDetail_s); var detailIndex = EditorGUILayout.Popup("Spot Detail", detailList.IndexOf(body.spotDetail), SpotDetail_s); serializedObject.FindProperty("spotDetail").stringValue = detailIndex >= 0 ? SpotDetail_s[detailIndex] : ""; if (serializedObject.FindProperty("spotDetail").stringValue == "OneLetter") { prop = serializedObject.FindProperty("index"); EditorGUILayout.PropertyField(prop); } } if (body.spot.Contains("Position")) { prop = serializedObject.FindProperty("positionTracking"); EditorGUILayout.PropertyField(prop); } else { serializedObject.FindProperty("positionTracking").boolValue = false; } bool constAlways = body.trackType == 6 && body.valueType == 2; EditorGUI.BeginDisabledGroup(constAlways); prop = serializedObject.FindProperty("updateEveryFrame"); EditorGUILayout.PropertyField(prop); EditorGUI.EndDisabledGroup(); if (constAlways) { serializedObject.FindProperty("updateEveryFrame").boolValue = true; } } serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { //base.OnInspectorGUI(); if (!T23_EditorUtility.GuideJoinMaster(master, body, body.groupID, 2)) { return; } serializedObject.Update(); T23_EditorUtility.ShowTitle("Action"); if (master) { GUILayout.Box("[#" + body.groupID.ToString() + "] " + body.title, T23_EditorUtility.HeadlineStyle()); T23_EditorUtility.ShowSwapButton(master, body.title); body.priority = master.actionTitles.IndexOf(body.title); } else { body.groupID = EditorGUILayout.IntField("Group ID", body.groupID); body.priority = EditorGUILayout.IntField("Priority", body.priority); } prop = serializedObject.FindProperty("propertyBox"); EditorGUILayout.PropertyField(prop); if (body.propertyBox) { serializedObject.FindProperty("calcOperator").intValue = EditorGUILayout.Popup("Operator", body.calcOperator, (body.propertyBox.valueType == 1 || body.propertyBox.valueType == 2 || body.propertyBox.valueType == 3) ? CalcOperator_a : CalcOperator_b); if (body.calcOperator != 0) { if (body.propertyBox.valueType == 0) { T23_EditorUtility.PropertyBoxField(serializedObject, "value_bool", "valuePropertyBox", "usePropertyBox", () => serializedObject.FindProperty("value_bool").boolValue = EditorGUILayout.Toggle("Value_bool", body.value_bool)); } else if (body.propertyBox.valueType == 1) { T23_EditorUtility.PropertyBoxField(serializedObject, "value_int", "valuePropertyBox", "usePropertyBox", () => serializedObject.FindProperty("value_int").intValue = EditorGUILayout.IntField("Value_int", body.value_int)); } else if (body.propertyBox.valueType == 2 || (body.propertyBox.valueType == 3 && (body.calcOperator == 4 || body.calcOperator == 5))) { T23_EditorUtility.PropertyBoxField(serializedObject, "value_float", "valuePropertyBox", "usePropertyBox", () => serializedObject.FindProperty("value_float").floatValue = EditorGUILayout.FloatField("Value_float", body.value_float)); } else if (body.propertyBox.valueType == 3) { T23_EditorUtility.PropertyBoxField(serializedObject, "value_Vector3", "valuePropertyBox", "usePropertyBox", () => serializedObject.FindProperty("value_Vector3").vector3Value = EditorGUILayout.Vector3Field("Value_Vector3", body.value_Vector3)); } else if (body.propertyBox.valueType == 4) { T23_EditorUtility.PropertyBoxField(serializedObject, "value_string", "valuePropertyBox", "usePropertyBox", () => serializedObject.FindProperty("value_string").stringValue = EditorGUILayout.TextField("Value_string", body.value_string)); } } } if (!master || master.randomize) { prop = serializedObject.FindProperty("randomAvg"); EditorGUILayout.PropertyField(prop); } serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { //base.OnInspectorGUI(); if (!T23_EditorUtility.GuideJoinMaster(master, body, body.groupID, 1)) { return; } UdonSharpProgramAsset programAsset = UdonSharpEditorUtility.GetUdonSharpProgramAsset((UdonSharpBehaviour)target); UdonSharpGUI.DrawCompileErrorTextArea(programAsset); serializedObject.Update(); T23_EditorUtility.ShowTitle("Trigger"); if (master) { GUILayout.Box("[#" + body.groupID.ToString() + "] " + body.title, T23_EditorUtility.HeadlineStyle()); } else { body.groupID = EditorGUILayout.IntField("Group ID", body.groupID); } prop = serializedObject.FindProperty("passive"); EditorGUILayout.PropertyField(prop); if (!body.passive) { prop = serializedObject.FindProperty("allowContinuity"); EditorGUILayout.PropertyField(prop); } GUILayout.Space(10); EditorGUILayout.LabelField("Base", EditorStyles.boldLabel); serializedObject.FindProperty("basePropertyBox").objectReferenceValue = EditorGUILayout.ObjectField("PropertyBox", body.basePropertyBox, typeof(T23_PropertyBox), true); if (body.basePropertyBox) { GUILayout.Space(10); EditorGUILayout.LabelField("Comparison", EditorStyles.boldLabel); serializedObject.FindProperty("compOperator").intValue = EditorGUILayout.Popup("Operator", body.compOperator, (body.basePropertyBox.valueType == 1 || body.basePropertyBox.valueType == 2) ? CompOperator_a : CompOperator_b); serializedObject.FindProperty("compParameterType").intValue = (int)(CompParameterType)EditorGUILayout.EnumPopup("Parameter Type", (CompParameterType)body.compParameterType); if (body.compParameterType == 0) { switch (body.basePropertyBox.valueType) { case 0: serializedObject.FindProperty("comp_b").boolValue = EditorGUILayout.Toggle("Value", body.comp_b); break; case 1: serializedObject.FindProperty("comp_i").intValue = EditorGUILayout.IntField("Value", body.comp_i); break; case 2: serializedObject.FindProperty("comp_f").floatValue = EditorGUILayout.FloatField("Value", body.comp_f); break; case 4: serializedObject.FindProperty("comp_s").stringValue = EditorGUILayout.TextField("Value", body.comp_s); break; } } if (body.compParameterType == 1) { serializedObject.FindProperty("compPropertyBox").objectReferenceValue = EditorGUILayout.ObjectField("PropertyBox", body.compPropertyBox, typeof(T23_PropertyBox), true); if (body.compPropertyBox) { if (body.compPropertyBox.valueType != body.basePropertyBox.valueType) { EditorGUILayout.HelpBox("PropertyBox の ValueType が不適合です", MessageType.Error); } } } } serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { //base.OnInspectorGUI(); if (!T23_EditorUtility.GuideJoinMaster(master, body, body.groupID, 0)) { return; } serializedObject.Update(); T23_EditorUtility.ShowTitle("Broadcast"); if (master) { GUILayout.Box("[#" + body.groupID.ToString() + "] " + body.title, T23_EditorUtility.HeadlineStyle()); master.randomize = body.randomize; } else { body.groupID = EditorGUILayout.IntField("Group ID", body.groupID); } if (body.groupID > 9 || body.groupID < 0) { EditorGUILayout.HelpBox("BroadcastGlobal は Group #0 ~ #9 の間でしか使用できません。", MessageType.Error); } prop = serializedObject.FindProperty("sendTarget"); EditorGUILayout.PropertyField(prop); serializedObject.FindProperty("useablePlayer").intValue = (int)(UsablePlayer)EditorGUILayout.EnumPopup("Usable Player", (UsablePlayer)body.useablePlayer); serializedObject.FindProperty("bufferType").intValue = (int)(BufferType)EditorGUILayout.EnumPopup("Buffer Type", (BufferType)body.bufferType); prop = serializedObject.FindProperty("delayInSeconds"); EditorGUILayout.PropertyField(prop); prop = serializedObject.FindProperty("randomize"); EditorGUILayout.PropertyField(prop); if (body.bufferType == (int)BufferType.Unbuffered) { if (body.commonBuffer != null) { body.commonBuffer = null; T23_EditorUtility.UpdateAllCommonBuffersRelate(); } body.commonBufferSearched = false; } else { EditorGUI.BeginChangeCheck(); prop = serializedObject.FindProperty("commonBuffer"); EditorGUILayout.PropertyField(prop); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); serializedObject.Update(); T23_EditorUtility.UpdateAllCommonBuffersRelate(); } if (body.commonBuffer == null && !body.commonBufferSearched) { body.commonBuffer = T23_EditorUtility.GetAutoJoinCommonBuffer(body); if (body.commonBuffer != null) { T23_EditorUtility.UpdateAllCommonBuffersRelate(); } body.commonBufferSearched = true; } } serializedObject.ApplyModifiedProperties(); }
private void OnDestroy() { body.commonBuffer = null; T23_EditorUtility.UpdateAllCommonBuffersRelate(); }
public override void OnInspectorGUI() { //base.OnInspectorGUI(); if (!UdonSharpEditorUtility.IsProxyBehaviour(body)) { UdonSharpGUI.DrawConvertToUdonBehaviourButton(body); return; } serializedObject.Update(); T23_EditorUtility.ShowTitle("Option"); GUILayout.Box("AudioBank", T23_EditorUtility.HeadlineStyle()); prop = serializedObject.FindProperty("source"); EditorGUILayout.PropertyField(prop); serializedObject.FindProperty("playbackOrder").intValue = (int)(Order)EditorGUILayout.EnumPopup("Playback Order", (Order)body.playbackOrder); serializedObject.FindProperty("playbackStyle").intValue = (int)(Style)EditorGUILayout.EnumPopup("Playback Style", (Style)body.playbackStyle); prop = serializedObject.FindProperty("repeat"); EditorGUILayout.PropertyField(prop); prop = serializedObject.FindProperty("minPitchRange"); EditorGUILayout.PropertyField(prop); prop = serializedObject.FindProperty("maxPitchRange"); EditorGUILayout.PropertyField(prop); EditorGUILayout.BeginHorizontal(); prop = serializedObject.FindProperty("onPlay"); EditorGUILayout.PropertyField(prop); /* * List<string> onPlayCustomNameList = new List<string>(); * if (body.onPlay) * { * onPlayCustomNameList = GetCustomNameList(body.onPlay); * } * if (onPlayCustomNameList.Count > 0) * { * var index = EditorGUILayout.Popup(onPlayCustomNameList.IndexOf(body.onPlayCustomName), onPlayCustomNameList.ToArray()); * serializedObject.FindProperty("onPlayCustomName").stringValue = index >= 0 ? onPlayCustomNameList[index] : ""; * } * else */ { prop = serializedObject.FindProperty("onPlayCustomName"); EditorGUILayout.PropertyField(prop, new GUIContent("")); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); prop = serializedObject.FindProperty("onStop"); EditorGUILayout.PropertyField(prop); /* * List<string> onStopCustomNameList = new List<string>(); * if (body.onStop) * { * onStopCustomNameList = GetCustomNameList(body.onStop); * } * if (onStopCustomNameList.Count > 0) * { * var index = EditorGUILayout.Popup(onStopCustomNameList.IndexOf(body.onStopCustomName), onStopCustomNameList.ToArray()); * serializedObject.FindProperty("onStopCustomName").stringValue = index >= 0 ? onStopCustomNameList[index] : ""; * } * else */ { prop = serializedObject.FindProperty("onStopCustomName"); EditorGUILayout.PropertyField(prop, new GUIContent("")); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); prop = serializedObject.FindProperty("onChange"); EditorGUILayout.PropertyField(prop); /* * List<string> onChangeCustomNameList = new List<string>(); * if (body.onChange) * { * onChangeCustomNameList = GetCustomNameList(body.onChange); * } * if (onChangeCustomNameList.Count > 0) * { * var index = EditorGUILayout.Popup(onChangeCustomNameList.IndexOf(body.onChangeCustomName), onChangeCustomNameList.ToArray()); * serializedObject.FindProperty("onChangeCustomName").stringValue = index >= 0 ? onChangeCustomNameList[index] : ""; * } * else */ { prop = serializedObject.FindProperty("onChangeCustomName"); EditorGUILayout.PropertyField(prop, new GUIContent("")); } EditorGUILayout.EndHorizontal(); SerializedProperty recieverProp = serializedObject.FindProperty("clips"); if (recieverReorderableList == null) { recieverReorderableList = new ReorderableList(serializedObject, recieverProp); recieverReorderableList.draggable = true; recieverReorderableList.displayAdd = true; recieverReorderableList.drawHeaderCallback = rect => EditorGUI.LabelField(rect, "Clips"); recieverReorderableList.drawElementCallback = (rect, index, isActive, isFocused) => { rect.height = EditorGUIUtility.singleLineHeight; body.clips[index] = (AudioClip)EditorGUI.ObjectField(rect, body.clips[index], typeof(AudioClip), false); }; } recieverReorderableList.DoLayoutList(); serializedObject.ApplyModifiedProperties(); }