Gizmos
How do I use Gizmos
Below are practical examples compiled from projects for learning and reference purposes
Featured Snippets
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
181 private void DrawSynchronizePositionDataGizmos(ref Rect propertyRect)
182 {
183 GUI.enabled = true;
184 /*PhotonGUI.DrawGizmoOptions(propertyRect, "Synchronized Position Gizmo",
185 serializedObject.FindProperty("m_PositionModel.DrawNetworkGizmo"),
186 serializedObject.FindProperty("m_PositionModel.NetworkGizmoColor"),
187 serializedObject.FindProperty("m_PositionModel.NetworkGizmoType"),
188 serializedObject.FindProperty("m_PositionModel.NetworkGizmoSize"));
189 propertyRect.y += EDITOR_LINE_HEIGHT;
190
191 PhotonGUI.DrawGizmoOptions(propertyRect, "Extrapolated Position Gizmo",
192 serializedObject.FindProperty("m_PositionModel.DrawExtrapolatedGizmo"),
193 serializedObject.FindProperty("m_PositionModel.ExtrapolatedGizmoColor"),
194 serializedObject.FindProperty("m_PositionModel.ExtrapolatedGizmoType"),
195 serializedObject.FindProperty("m_PositionModel.ExtrapolatedGizmoSize"));
196 propertyRect.y += EDITOR_LINE_HEIGHT;*/
197
198 EditorGUI.PropertyField(propertyRect, serializedObject.FindProperty("m_PositionModel.DrawErrorGizmo"),
199 new GUIContent("Draw synchronized position error"));
200 propertyRect.y += EDITOR_LINE_HEIGHT;
201 }
File name: PhotonGUI.cs
Copy
197 SerializedProperty gizmoSizeProperty )
198 {
199 float height = EditorGUIUtility.singleLineHeight;
200 float flexibleWidth = Mathf.Max( 40, position.width - EditorGUIUtility.labelWidth - 20 - 75 - 5 - 40 - 5 );
201
202 Rect labelRect = new Rect( position.xMin, position.yMin, EditorGUIUtility.labelWidth, height );
203 GUI.Label( labelRect, label );
204
205 Rect enabledRect = new Rect( labelRect.xMax, labelRect.yMin, 20, height );
206 EditorGUI.PropertyField( enabledRect, gizmoEnabledProperty, GUIContent.none );
207
208 bool oldGUIEnabled = GUI.enabled;
209 GUI.enabled = gizmoEnabledProperty.boolValue;
210
211 Rect colorRect = new Rect( enabledRect.xMax + 5, labelRect.yMin, 70, height );
212 EditorGUI.PropertyField( colorRect, gizmoColorProperty, GUIContent.none );
213
214 Rect typeRect = new Rect( colorRect.xMax + 5, labelRect.yMin, flexibleWidth * 0.7f, height );
215 EditorGUI.PropertyField( typeRect, gizmoTypeProperty, GUIContent.none );
216
217 Rect sizeLabelRect = new Rect( typeRect.xMax + 10, labelRect.yMin, 30, height );
218 GUI.Label( sizeLabelRect, "Size" );
219
220 Rect sizeRect = new Rect( sizeLabelRect.xMax + 5, labelRect.yMin, flexibleWidth * 0.3f, height );
221 EditorGUI.PropertyField( sizeRect, gizmoSizeProperty, GUIContent.none );
222
223 GUI.enabled = oldGUIEnabled;
224 }
File name: GizmoType.cs
Copy
15 public static void Draw( Vector3 center, GizmoType type, Color color, float size )
16 {
17 Gizmos.color = color;
18
19 switch( type )
20 {
21 case GizmoType.Cube:
22 Gizmos.DrawCube( center, Vector3.one * size );
23 break;
24 case GizmoType.Sphere:
25 Gizmos.DrawSphere( center, size * 0.5f );
26 break;
27 case GizmoType.WireCube:
28 Gizmos.DrawWireCube( center, Vector3.one * size );
29 break;
30 case GizmoType.WireSphere:
31 Gizmos.DrawWireSphere( center, size * 0.5f );
32 break;
33 }
34 }
File name: Grid.cs
Copy
289 void OnDrawGizmos() {
290 Gizmos.DrawWireCube(transform.position, new Vector3(2,2,2));
291 }
File name: PlayerCtrl.cs
Copy
66 private void OnDrawGizmos()
67 {
68 //Gizmos.DrawWireSphere(feet.position, feetRadius);
69
70 Gizmos.DrawWireCube(feet.position, new Vector3(boxWidth, boxHeight, 0));
71 }
Gizmos 127 lượt xem
Gõ tìm kiếm nhanh...