123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- using UnityEngine;
- using System.Collections;
- using System.Collections.Generic;
- using UnityEditor;
- using System;
-
- namespace VRCSDK2
- {
- [CustomEditor(typeof(VRCSDK2.VRC_PlayerMods))]
- public class VRCPlayerModsEditor : Editor
- {
- VRCSDK2.VRC_PlayerMods myTarget;
-
- void OnEnable()
- {
- if(myTarget == null)
- myTarget = (VRCSDK2.VRC_PlayerMods)target;
- }
-
- public override void OnInspectorGUI()
- {
- myTarget.isRoomPlayerMods = EditorGUILayout.Toggle("isRoomPlayerMods", myTarget.isRoomPlayerMods);
-
- List<VRCPlayerMod> playerMods = myTarget.playerMods;
- for(int i=0; i<playerMods.Count; ++i)
- {
- VRCSDK2.VRCPlayerMod mod = playerMods[i];
- EditorGUILayout.BeginVertical("box");
- EditorGUILayout.LabelField(mod.name, EditorStyles.boldLabel);
- if( mod.allowNameEdit )
- mod.name = EditorGUILayout.TextField( "Mod Name: ", mod.name );
- for(int j=0; j<mod.properties.Count; ++j)
- {
- VRCSDK2.VRCPlayerModProperty prop = mod.properties[j];
- myTarget.playerMods[i].properties[j] = DrawFieldForProp(prop);
- }
- if(GUILayout.Button ("Remove Mod"))
- {
- myTarget.RemoveMod(mod);
- break;
- }
- EditorGUILayout.EndVertical();
- }
- if(GUILayout.Button("Add Mods"))
- {
- VRCPlayerModEditorWindow.AddModCallback adcb = OnInspectorGUI;
- VRCPlayerModEditorWindow.Init(myTarget, adcb);
- }
- }
-
- VRCSDK2.VRCPlayerModProperty DrawFieldForProp(VRCSDK2.VRCPlayerModProperty property)
- {
- if(property.type.SystemType == typeof(int))
- {
- property.intValue = EditorGUILayout.IntField(property.name, property.intValue);
- }
- else if(property.type.SystemType == typeof(float))
- {
- property.floatValue = EditorGUILayout.FloatField(property.name, property.floatValue);
- }
- else if(property.type.SystemType == typeof(string))
- {
- property.stringValue = EditorGUILayout.TextField(property.name, property.stringValue);
- }
- else if(property.type.SystemType == typeof(bool))
- {
- property.boolValue = EditorGUILayout.Toggle(property.name, property.boolValue);
- }
- else if(property.type.SystemType == typeof(GameObject))
- {
- EditorGUILayout.BeginHorizontal();
- EditorGUILayout.LabelField( property.name );
- property.gameObjectValue = (GameObject) EditorGUILayout.ObjectField( property.gameObjectValue, typeof( GameObject ), true );
- EditorGUILayout.EndHorizontal();
- }
- else if(property.type.SystemType == typeof(KeyCode))
- {
- EditorGUILayout.BeginHorizontal();
- EditorGUILayout.LabelField( property.name );
- property.keyCodeValue = (KeyCode) EditorGUILayout.EnumPopup( property.keyCodeValue );
- EditorGUILayout.EndHorizontal();
- }
- else if(property.type.SystemType == typeof(VRCSDK2.VRC_EventHandler.VrcBroadcastType))
- {
- EditorGUILayout.BeginHorizontal();
- EditorGUILayout.LabelField( property.name );
- property.broadcastValue = (VRCSDK2.VRC_EventHandler.VrcBroadcastType) EditorGUILayout.EnumPopup( property.broadcastValue );
- EditorGUILayout.EndHorizontal();
- }
- else if(property.type.SystemType == typeof(VRCSDK2.VRCPlayerModFactory.HealthOnDeathAction))
- {
- EditorGUILayout.BeginHorizontal();
- EditorGUILayout.LabelField( property.name );
- property.onDeathActionValue = (VRCSDK2.VRCPlayerModFactory.HealthOnDeathAction) EditorGUILayout.EnumPopup( property.onDeathActionValue);
- EditorGUILayout.EndHorizontal();
- }
- else if(property.type.SystemType == typeof(RuntimeAnimatorController))
- {
- EditorGUILayout.BeginHorizontal();
- EditorGUILayout.LabelField( property.name );
- property.animationController = (RuntimeAnimatorController) EditorGUILayout.ObjectField( property.animationController, typeof( RuntimeAnimatorController ), false );
- EditorGUILayout.EndHorizontal();
- }
- return property;
- }
- }
- }
|