protected void DrawDefaultGizmo(bool drawFullRect, float fullRectColorShade /*= 0.33f*/) { #if UNITY_EDITOR Matrix4x4 initialMatrix = Gizmos.matrix; Color initialColor = Gizmos.color; Gizmos.matrix = this.transform.localToWorldMatrix; Rect r = this.GetLocalRect(); Gizmos.color = initialColor; switch (this.shape) { case Shape.Rectangle: case Shape.Square: Gizmos.DrawWireCube(r.center, r.size); break; case Shape.Circle: case Shape.Ellipse: Gizmos.matrix = Gizmos.matrix * CFGizmos.GetCircleMatrix(r.center, new Vector2(r.width, ((this.shape == Shape.Ellipse) ? r.height : r.width))); //.matrix * Matrix4x4.TRS(r.center, Quaternion.identity, new Vector3(r.width, ((this.shape == Shape.ELLIPSE) ? r.height : r.width), 0.00001f)); CFGizmos.DrawOutlinedCircle(); break; } Gizmos.matrix = initialMatrix; #endif }
// -------------------- override protected void DrawCustomGizmos(bool selected) { Matrix4x4 initialMatrix = Gizmos.matrix; Rect r = this.GetLocalRect(); // Draw shape and full rect... Gizmos.color = (selected ? Color.red : Color.white); this.DrawDefaultGizmo(true); if (this.wheelMode == WheelMode.Turn) { Gizmos.matrix = this.transform.localToWorldMatrix * Matrix4x4.TRS(r.center, Quaternion.identity, new Vector3(r.width, r.height, 0.00001f)); Gizmos.color = Color.yellow; CFGizmos.DrawCircle(Vector3.zero, this.turnModeDeadZone, false); Gizmos.matrix = initialMatrix; } }
// -------------------- override protected void DrawCustomGizmos(bool selected) { if (this.state == null) { return; } Matrix4x4 initialMatrix = Gizmos.matrix; Rect r = this.GetLocalRect(); Color analogDeadZoneColor = Color.yellow * 0.33f; Color analogEndZoneColor = Color.yellow * 0.66f; Color analogEdgeColor = Color.yellow; Color digitalDeadZoneColor = Color.green * 0.5f; // Draw shape and full rect... Gizmos.color = (selected ? Color.red : Color.white); this.DrawDefaultGizmo(true); Gizmos.matrix = this.transform.localToWorldMatrix * Matrix4x4.TRS(r.center, Quaternion.identity, new Vector3(r.width, r.height, 0.00001f)); // Draw Analog dead zone... if (this.config.analogDeadZone > 0) { Gizmos.color = analogDeadZoneColor; if (this.config.clampMode == JoystickConfig.ClampMode.Circle) //.circularClamp) { CFGizmos.DrawCircle(Vector3.zero, this.config.analogDeadZone, false); } else { Gizmos.DrawWireCube(Vector3.zero, Vector3.one * this.config.analogDeadZone); } } if (this.config.analogEndZone < 1) { Gizmos.color = analogEndZoneColor; if (this.config.clampMode == JoystickConfig.ClampMode.Circle) //.circularClamp) { CFGizmos.DrawCircle(Vector3.zero, this.config.analogEndZone, false); } else { Gizmos.DrawWireCube(Vector3.zero, Vector3.one * this.config.analogEndZone); } } if (this.config.digitalEnterThresh > 0) { Gizmos.color = digitalDeadZoneColor; if (this.config.clampMode == JoystickConfig.ClampMode.Circle) //.circularClamp) { CFGizmos.DrawCircle(Vector3.zero, this.config.digitalEnterThresh, false); } else { Gizmos.DrawWireCube(Vector3.zero, Vector3.one * this.config.digitalEnterThresh); } } if ((this.config.clampMode == JoystickConfig.ClampMode.Circle) != ((this.shape == TouchControl.Shape.Circle) || (this.shape == TouchControl.Shape.Ellipse))) { Gizmos.color = analogEdgeColor; if (this.config.clampMode == JoystickConfig.ClampMode.Circle) //.circularClamp) { CFGizmos.DrawCircle(Vector3.zero, Vector3.one, false); } else { Gizmos.DrawWireCube(Vector3.zero, Vector3.one); } } Gizmos.matrix = initialMatrix; }