public static void ArrowArc(Transform _target, float _radius, float _degree, float _left, float _right, float _level, bool _invert = false) { if (_target == null || _degree == 0 || _radius == 0) { return; } for (float _angle = _left; _angle <= _right + 0.15f; _angle += _degree) { Vector3 _pos_1 = PositionTools.GetDirectionPosition(_target, _angle, _radius); Vector3 _pos_2 = PositionTools.GetDirectionPosition(_target, _angle, _radius + 1); _pos_1.y = _level; _pos_2.y = _level; if (_invert) { Arrow(_pos_2, _pos_1 - _pos_2); } else { Arrow(_pos_1, _pos_2 - _pos_1); } } }
public static void Arc(Transform _target, float _radius, float _degress, float _left, float _right, float _level, bool _dotted = true) { if (_target == null) { return; } Vector3 _center = _target.position; Vector3 _center_pos = PositionTools.GetDirectionPosition(_target, 0, _radius + (_radius / 10)); Vector3 _left_pos = PositionTools.GetDirectionPosition(_target, _left, _radius); Vector3 _right_pos = PositionTools.GetDirectionPosition(_target, _right, _radius); _center.y = _level; _center_pos.y = _level; _left_pos.y = _level; _right_pos.y = _level; /* * Gizmos.DrawLine( _center, _center_pos ); * Gizmos.DrawLine( _center, _left_pos ); * Gizmos.DrawLine( _center, _right_pos );*/ Vector3 _last_pos = _left_pos; for (float _angle = _left; _angle <= _right; _angle += _degress) { Vector3 _pos = PositionTools.GetDirectionPosition(_target, _angle, _radius); _pos.y = _level; if (!_dotted || ((int)_angle % 2 == 0)) { Gizmos.DrawLine(_last_pos, _pos); } _last_pos = _pos; } }