public override void DrawGizmos(bool _draw) { if (!_draw || !this.enabled || Entity == null) { return; } CustomGizmos.Color(GizmoColor); Gizmos.DrawSphere(this.transform.position, GizmoSize); //Gizmos.DrawWireCube( this.transform.position, Vector3.one ); if (Entity.EntityType == ICE.World.EnumTypes.EntityClassType.Waypoint) { ICECreatureWaypoint _waypoint = Entity as ICECreatureWaypoint; if (_waypoint != null && _waypoint.Links.Enabled) { foreach (WaypointLinkObject _link in _waypoint.Links.Links) { if (_link.Enabled && _link.Waypoint != null) { float _dist = 0.25f; Vector3 _pos_origin = this.transform.position; Vector3 _pos_target = _link.Waypoint.transform.position; Vector3 _dir = (_pos_target - _pos_origin).normalized; //_dir.y = 0; Vector3 _rot_dir = _dir; _rot_dir.y = 0; _rot_dir = Quaternion.Euler(0, 90, 0) * _rot_dir; Gizmos.DrawLine(_pos_origin + (_rot_dir * _dist), _pos_target + (_rot_dir * _dist)); //CustomGizmos.Arrow( _pos_origin + ( _rot_dir * _dist ) + ( _dir * 2 ), _dir ); CustomGizmos.ArrowHead(_pos_origin + (_rot_dir * _dist) + (_dir * 1.0f), _dir, _dist * 2, _dist * 100); CustomGizmos.ArrowHead(_pos_origin + (_rot_dir * _dist) + (_dir * 1.5f), _dir, _dist * 2, _dist * 100); CustomGizmos.ArrowHead(_pos_origin + (_rot_dir * _dist) + (_dir * 2.0f), _dir, _dist * 2, _dist * 100); //CustomGizmos.Arrow( 0, _pos_origin + ( _rot_dir * _dist ) + ( _dir * 1 ), Quaternion.LookRotation( _dir ), _dist * 10 ); } } } } }