PhotonGUI
How do I use Photon G U I
Below are practical examples compiled from projects for learning and reference purposes
Featured Snippets
File name: PhotonAnimatorViewEditor.cs
Copy
66 private void DrawWeightInspector()
67 {
68 SerializedProperty foldoutProperty = serializedObject.FindProperty("ShowLayerWeightsInspector");
69 foldoutProperty.boolValue = PhotonGUI.ContainerHeaderFoldout("Synchronize Layer Weights", foldoutProperty.boolValue);
70
71 if (foldoutProperty.boolValue == false)
72 {
73 return;
74 }
75
76 float lineHeight = 20;
77 Rect containerRect = PhotonGUI.ContainerBody(this.m_Animator.layerCount*lineHeight);
78
79 for (int i = 0; i < this.m_Animator.layerCount; ++i)
80 {
81 if (this.m_Target.DoesLayerSynchronizeTypeExist(i) == false)
82 {
83 this.m_Target.SetLayerSynchronized(i, PhotonAnimatorView.SynchronizeType.Disabled);
84 EditorUtility.SetDirty(this.m_Target);
85 }
86
87 PhotonAnimatorView.SynchronizeType value = this.m_Target.GetLayerSynchronizeType(i);
88
89 Rect elementRect = new Rect(containerRect.xMin, containerRect.yMin + i*lineHeight, containerRect.width, lineHeight);
90
91 Rect labelRect = new Rect(elementRect.xMin + 5, elementRect.yMin + 2, EditorGUIUtility.labelWidth - 5, elementRect.height);
92 GUI.Label(labelRect, "Layer " + i);
93
94 Rect popupRect = new Rect(elementRect.xMin + EditorGUIUtility.labelWidth, elementRect.yMin + 2, elementRect.width - EditorGUIUtility.labelWidth - 5, EditorGUIUtility.singleLineHeight);
95 value = (PhotonAnimatorView.SynchronizeType) EditorGUI.EnumPopup(popupRect, value);
96
97 if (i < this.m_Animator.layerCount - 1)
98 {
99 Rect splitterRect = new Rect(elementRect.xMin + 2, elementRect.yMax, elementRect.width - 4, 1);
100 PhotonGUI.DrawSplitter(splitterRect);
101 }
102
103 if (value != this.m_Target.GetLayerSynchronizeType(i))
104 {
105 Undo.RecordObject(target, "Modify Synchronize Layer Weights");
106 this.m_Target.SetLayerSynchronized(i, value);
107
108 EditorUtility.SetDirty(this.m_Target);
109 }
110 }
111 }
File name: PhotonAnimatorViewEditor.cs
Copy
179 private void DrawParameterInspector()
180 {
181 SerializedProperty foldoutProperty = serializedObject.FindProperty("ShowParameterInspector");
182 foldoutProperty.boolValue = PhotonGUI.ContainerHeaderFoldout("Synchronize Parameters", foldoutProperty.boolValue);
183
184 if (foldoutProperty.boolValue == false)
185 {
186 return;
187 }
188
189 float lineHeight = 20;
190 Rect containerRect = PhotonGUI.ContainerBody(GetParameterCount()*lineHeight);
191
192 for (int i = 0; i < GetParameterCount(); i++)
193 {
194 AnimatorControllerParameter parameter = null;
195
196#if UNITY_4_0 || UNITY_4_0_1 || UNITY_4_1 || UNITY_4_2 || UNITY_4_3 || UNITY_4_5 || UNITY_4_6
197 parameter = this.m_Controller.GetParameter(i);
198#else
199 parameter = m_Animator.parameters[ i ];
200#endif
201
202 string defaultValue = "";
203
204 if (parameter.type == AnimatorControllerParameterType.Bool)
205 {
206 defaultValue += parameter.defaultBool.ToString();
207 }
208 else if (parameter.type == AnimatorControllerParameterType.Float)
209 {
210 defaultValue += parameter.defaultFloat.ToString();
211 }
212 else if (parameter.type == AnimatorControllerParameterType.Int)
213 {
214 defaultValue += parameter.defaultInt.ToString();
215 }
216
217 if (this.m_Target.DoesParameterSynchronizeTypeExist(parameter.name) == false)
218 {
219 this.m_Target.SetParameterSynchronized(parameter.name, (PhotonAnimatorView.ParameterType) parameter.type, PhotonAnimatorView.SynchronizeType.Disabled);
220 EditorUtility.SetDirty(this.m_Target);
221 }
222
223 PhotonAnimatorView.SynchronizeType value = this.m_Target.GetParameterSynchronizeType(parameter.name);
224
225 Rect elementRect = new Rect(containerRect.xMin, containerRect.yMin + i*lineHeight, containerRect.width, lineHeight);
226
227 Rect labelRect = new Rect(elementRect.xMin + 5, elementRect.yMin + 2, EditorGUIUtility.labelWidth - 5, elementRect.height);
228 GUI.Label(labelRect, parameter.name + " (" + defaultValue + ")");
229
230 Rect popupRect = new Rect(elementRect.xMin + EditorGUIUtility.labelWidth, elementRect.yMin + 2, elementRect.width - EditorGUIUtility.labelWidth - 5, EditorGUIUtility.singleLineHeight);
231 value = (PhotonAnimatorView.SynchronizeType) EditorGUI.EnumPopup(popupRect, value);
232
233 if (i < GetParameterCount() - 1)
234 {
235 Rect splitterRect = new Rect(elementRect.xMin + 2, elementRect.yMax, elementRect.width - 4, 1);
236 PhotonGUI.DrawSplitter(splitterRect);
237 }
238
239 if (value != this.m_Target.GetParameterSynchronizeType(parameter.name))
240 {
241 Undo.RecordObject(target, "Modify Synchronize Parameter " + parameter.name);
242 this.m_Target.SetParameterSynchronized(parameter.name, (PhotonAnimatorView.ParameterType) parameter.type, value);
243
244 EditorUtility.SetDirty(this.m_Target);
245 }
246 }
247 }
File name: PhotonRigidbody2DViewEditor.cs
Copy
7 public override void OnInspectorGUI()
8 {
9 PhotonGUI.ContainerHeader("Options");
10
11 Rect containerRect = PhotonGUI.ContainerBody(EditorGUIUtility.singleLineHeight*2 + 10);
12
13 Rect propertyRect = new Rect(containerRect.xMin + 5, containerRect.yMin + 5, containerRect.width, EditorGUIUtility.singleLineHeight);
14 EditorGUI.PropertyField(propertyRect, serializedObject.FindProperty("m_SynchronizeVelocity"), new GUIContent("Synchronize Velocity"));
15
16 propertyRect.y += EditorGUIUtility.singleLineHeight;
17 EditorGUI.PropertyField(propertyRect, serializedObject.FindProperty("m_SynchronizeAngularVelocity"), new GUIContent("Synchronize Angular Velocity"));
18 }
File name: PhotonRigidbodyViewEditor.cs
Copy
7 public override void OnInspectorGUI()
8 {
9 PhotonGUI.ContainerHeader("Options");
10
11 Rect containerRect = PhotonGUI.ContainerBody(EditorGUIUtility.singleLineHeight*2 + 10);
12
13 Rect propertyRect = new Rect(containerRect.xMin + 5, containerRect.yMin + 5, containerRect.width, EditorGUIUtility.singleLineHeight);
14 EditorGUI.PropertyField(propertyRect, serializedObject.FindProperty("m_SynchronizeVelocity"), new GUIContent("Synchronize Velocity"));
15
16 propertyRect.y += EditorGUIUtility.singleLineHeight;
17 EditorGUI.PropertyField(propertyRect, serializedObject.FindProperty("m_SynchronizeAngularVelocity"), new GUIContent("Synchronize Angular Velocity"));
18 }
File name: PhotonTransformViewEditor.cs
Copy
96 private void DrawSynchronizePositionData()
97 {
98 if (this.m_SynchronizePositionProperty == null || this.m_SynchronizePositionProperty.boolValue == false)
99 {
100 return;
101 }
102
103 SerializedProperty interpolatePositionProperty = serializedObject.FindProperty("m_PositionModel.InterpolateOption");
104 PhotonTransformViewPositionModel.InterpolateOptions interpolateOption = (PhotonTransformViewPositionModel.InterpolateOptions)interpolatePositionProperty.enumValueIndex;
105
106 SerializedProperty extrapolatePositionProperty = serializedObject.FindProperty("m_PositionModel.ExtrapolateOption");
107 PhotonTransformViewPositionModel.ExtrapolateOptions extrapolateOption = (PhotonTransformViewPositionModel.ExtrapolateOptions)extrapolatePositionProperty.enumValueIndex;
108
109 float containerHeight = 155;
110
111 switch (interpolateOption)
112 {
113 case PhotonTransformViewPositionModel.InterpolateOptions.FixedSpeed:
114 case PhotonTransformViewPositionModel.InterpolateOptions.Lerp:
115 containerHeight += EDITOR_LINE_HEIGHT;
116 break;
117 /*case PhotonTransformViewPositionModel.InterpolateOptions.MoveTowardsComplex:
118 containerHeight += EDITOR_LINE_HEIGHT*3;
119 break;*/
120 }
121
122 if (extrapolateOption != PhotonTransformViewPositionModel.ExtrapolateOptions.Disabled)
123 {
124 containerHeight += EDITOR_LINE_HEIGHT;
125 }
126
127 switch (extrapolateOption)
128 {
129 case PhotonTransformViewPositionModel.ExtrapolateOptions.FixedSpeed:
130 containerHeight += EDITOR_LINE_HEIGHT;
131 break;
132 }
133
134 if (this.m_InterpolateHelpOpen == true)
135 {
136 containerHeight += GetInterpolateHelpBoxHeight();
137 }
138
139 if (this.m_ExtrapolateHelpOpen == true)
140 {
141 containerHeight += GetExtrapolateHelpBoxHeight();
142 }
143
144 // removed Gizmo Options. -3 lines, -1 splitter
145 containerHeight -= EDITOR_LINE_HEIGHT * 2;
146
147 Rect rect = PhotonGUI.ContainerBody(containerHeight);
148
149 Rect propertyRect = new Rect(rect.xMin + 5, rect.yMin + 2, rect.width - 10, EditorGUIUtility.singleLineHeight);
150
151 DrawTeleport(ref propertyRect);
152 DrawSplitter(ref propertyRect);
153
154 DrawSynchronizePositionDataInterpolation(ref propertyRect, interpolatePositionProperty, interpolateOption);
155 DrawSplitter(ref propertyRect);
156
157 DrawSynchronizePositionDataExtrapolation(ref propertyRect, extrapolatePositionProperty, extrapolateOption);
158 DrawSplitter(ref propertyRect);
159
160 DrawSynchronizePositionDataGizmos(ref propertyRect);
161 }
File name: PhotonTransformViewEditor.cs
Copy
163 private float GetInterpolateHelpBoxHeight()
164 {
165 return PhotonGUI.RichLabel.CalcHeight(new GUIContent(INTERPOLATE_HELP), Screen.width - 54) + 35;
166 }
File name: PhotonTransformViewEditor.cs
Copy
168 private float GetExtrapolateHelpBoxHeight()
169 {
170 return PhotonGUI.RichLabel.CalcHeight(new GUIContent(EXTRAPOLATE_HELP), Screen.width - 54) + 35;
171 }
File name: PhotonTransformViewEditor.cs
Copy
173 private void DrawSplitter(ref Rect propertyRect)
174 {
175 Rect splitterRect = new Rect(propertyRect.xMin - 3, propertyRect.yMin, propertyRect.width + 6, 1);
176 PhotonGUI.DrawSplitter(splitterRect);
177
178 propertyRect.y += 5;
179 }
File name: PhotonTransformViewEditor.cs
Copy
203 private void DrawHelpBox(ref Rect propertyRect, bool isOpen, float height, string helpText, string url)
204 {
205 if (isOpen == true)
206 {
207 Rect helpRect = new Rect(propertyRect.xMin, propertyRect.yMin, propertyRect.width, height - 5);
208 GUI.BeginGroup(helpRect, GUI.skin.box);
209 GUI.Label(new Rect(5, 5, propertyRect.width - 10, height - 30), helpText, PhotonGUI.RichLabel);
210 if (GUI.Button(new Rect(5, height - 30, propertyRect.width - 10, 20), "Read more in our documentation"))
211 {
212 Application.OpenURL(url);
213 }
214 GUI.EndGroup();
215
216 propertyRect.y += height;
217 }
218 }
File name: PhotonTransformViewEditor.cs
Copy
220 private void DrawPropertyWithHelpIcon(ref Rect propertyRect, ref bool isHelpOpen, SerializedProperty property, string tooltip)
221 {
222 Rect propertyFieldRect = new Rect(propertyRect.xMin, propertyRect.yMin, propertyRect.width - 20, propertyRect.height);
223 string propertyName = ObjectNames.NicifyVariableName(property.name);
224 EditorGUI.PropertyField(propertyFieldRect, property, new GUIContent(propertyName, tooltip));
225
226 Rect helpIconRect = new Rect(propertyFieldRect.xMax + 5, propertyFieldRect.yMin, 20, propertyFieldRect.height);
227 isHelpOpen = GUI.Toggle(helpIconRect, isHelpOpen, PhotonGUI.HelpIcon, GUIStyle.none);
228
229 propertyRect.y += EDITOR_LINE_HEIGHT;
230 }
Download file with original file name:PhotonGUI
PhotonGUI 122 lượt xem
Gõ tìm kiếm nhanh...