void OnSceneGUI() { F3DPlanet myTarget = (F3DPlanet)target; if (myTarget.OrbitPoint && myTarget.ShowOrbit) { float distToOrbitPoint = Vector3.Distance(myTarget.transform.position, myTarget.OrbitPoint.position); Handles.Disc(Quaternion.identity, myTarget.OrbitPoint.position, myTarget.FlattenOrbit ? Vector3.up : myTarget.transform.up, distToOrbitPoint, false, 1); } }
public override void OnInspectorGUI() { F3DPlanet myTarget = (F3DPlanet)target; EditorGUILayout.BeginVertical(); // BEGIN // GUIStyle smallFont = new GUIStyle(); smallFont.fontSize = 9; smallFont.wordWrap = true; smallFont.normal.textColor = new Color(0.7f, 0.7f, 0.7f); GUIStyle headerFont = new GUIStyle(); headerFont.fontSize = 11; headerFont.fontStyle = FontStyle.Bold; headerFont.normal.textColor = new Color(0.75f, 0.75f, 0.75f); GUIStyle subHeaderFont = new GUIStyle(); subHeaderFont.fontSize = 10; subHeaderFont.fontStyle = FontStyle.Bold; subHeaderFont.margin = new RectOffset(1, 0, 0, 0); subHeaderFont.padding = new RectOffset(1, 0, 3, 0); subHeaderFont.normal.textColor = new Color(0.70f, 0.70f, 0.70f); // EditorGUILayout.Space(); EditorGUILayout.LabelField("Planet settings:", headerFont); EditorGUILayout.BeginVertical("Box"); EditorGUILayout.BeginVertical("Box"); myTarget.OrbitPoint = (Transform)EditorGUILayout.ObjectField("Orbit around point:", myTarget.OrbitPoint, typeof(Transform), true); EditorGUILayout.EndVertical(); myTarget.OrbitRate = EditorGUILayout.FloatField("Orbit rate (radians / s):", myTarget.OrbitRate); myTarget.RotationRate = EditorGUILayout.FloatField("Local rotation:", myTarget.RotationRate); myTarget.ShowOrbit = EditorGUILayout.Toggle("Show trajectory", myTarget.ShowOrbit); myTarget.FlattenOrbit = EditorGUILayout.Toggle("Flatten Orbit to Y Axis", myTarget.FlattenOrbit); EditorGUILayout.EndVertical(); EditorGUILayout.EndVertical(); // END EditorUtility.SetDirty(myTarget); }