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...