31 lines
1.3 KiB
C#
31 lines
1.3 KiB
C#
#if UNITY_EDITOR
|
|
using UnityEngine;
|
|
using UnityEditor;
|
|
|
|
[CustomEditor(typeof(ProjectileSpawner))]
|
|
public class TowerEditor : Editor
|
|
{
|
|
private float arcDist = 1f;
|
|
|
|
public void OnSceneGUI()
|
|
{
|
|
var tower = (serializedObject.targetObject as Component).gameObject.GetComponent<ProjectileTower>();
|
|
|
|
// Draw horizontal angle
|
|
Handles.color = Color.red;
|
|
float angleX = tower.HorizontalRotationMinMax.y - tower.HorizontalRotationMinMax.x;
|
|
float vX = (Mathf.PI - tower.HorizontalRotation * Mathf.Deg2Rad) / 2f;
|
|
Vector3 fromX = Quaternion.AngleAxis(tower.HorizontalRotationMinMax.x, tower.transform.up) * tower.transform.right;
|
|
Handles.DrawWireArc(tower.transform.position, tower.transform.up, fromX, angleX, arcDist, 5);
|
|
|
|
// Draw vertical angle
|
|
Handles.color = Color.green;
|
|
float angleY = tower.VerticalRotationMinMax.y - tower.VerticalRotationMinMax.x;
|
|
float vY = (Mathf.PI - tower.VerticalRotation * Mathf.Deg2Rad) / 2f;
|
|
Vector3 fromY = Quaternion.AngleAxis(tower.VerticalRotationMinMax.x, tower.transform.right) * tower.transform.up;
|
|
Handles.DrawWireArc(tower.transform.position, tower.transform.right, fromY, angleY, arcDist, 5);
|
|
}
|
|
}
|
|
|
|
#endif
|