private void ManualOnEnable() { stats = target as Stats; statsNetwork = stats.GetComponent <StatsNetwork>(); hasComponent = statsNetwork != null; if (hasComponent) { statsAsset2 = DatabaseStatsEditor.GetStatsAsset(); attrsAsset2 = DatabaseStatsEditor.GetAttrsAsset(); serializedStatObject = new SerializedObject(statsNetwork); this.spStats = serializedStatObject.FindProperty("networkStats"); this.spAttributes = serializedStatObject.FindProperty("networkAttributes"); SyncStats(); SyncAttributes(); } }
public override void OnInspectorGUI() { if (serializedObject == null) { return; } base.OnInspectorGUI(); stats = target as Stats; bool statsChanged = this.statsAsset2 == null ? false : this.statsAssetHash2 != this.statsAsset2.GetHashCode(); bool attrsChanged = this.attrsAsset2 == null ? false : this.attrsAssetHash2 != this.attrsAsset2.GetHashCode(); if (!initialized || statsChanged || attrsChanged) { this.ManualOnEnable(); initialized = true; serializedObject.ApplyModifiedProperties(); } if (this.section == null) { this.section = new Section("Network Settings", "ActionNetwork.png", this.Repaint); } bool hasChanged = false; this.section.PaintSection(); using (var group = new EditorGUILayout.FadeGroupScope(this.section.state.faded)) { if (group.visible) { EditorGUILayout.BeginVertical(CoreGUIStyles.GetBoxExpanded()); EditorGUI.BeginChangeCheck(); hasComponent = EditorGUILayout.Toggle(GUI_SYNC, hasComponent); hasChanged = EditorGUI.EndChangeCheck(); if (statsNetwork != null) { EditorGUI.BeginChangeCheck(); PaintAttributes(); EditorGUILayout.Space(); PaintStats(); if (EditorGUI.EndChangeCheck()) { serializedStatObject.ApplyModifiedPropertiesWithoutUndo(); } } EditorGUILayout.EndVertical(); } } if (hasChanged) { if (statsNetwork != null) { DestroyImmediate(statsNetwork, true); statsNetwork = null; initialized = false; } else { statsNetwork = stats.gameObject.GetComponent <StatsNetwork>() ?? stats.gameObject.AddComponent <StatsNetwork>(); statsNetwork.SetupPhotonView(); serializedStatObject = new UnityEditor.SerializedObject(statsNetwork); serializedStatObject.ApplyModifiedProperties(); serializedStatObject.Update(); hasComponent = true; } hasChanged = false; } EditorGUILayout.Space(); }