You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
CrowdControl/Assets/Feel/MMTools/Editor/MMVision/MMConeOfVisionInspector.cs

36 lines
1.3 KiB
C#

3 months ago
using UnityEngine;
using System.Collections;
using MoreMountains.Tools;
using System.Collections.Generic;
using UnityEditor;
namespace MoreMountains.Tools
{
[CustomEditor(typeof(MMConeOfVision), true)]
public class MMConeOfVisionInspector : Editor
{
protected MMConeOfVision _coneOfVision;
protected virtual void OnSceneGUI()
{
// draws a circle around the character to represent the cone of vision's radius
_coneOfVision = (MMConeOfVision)target;
Handles.color = Color.yellow;
Handles.DrawWireArc(_coneOfVision.Center, Vector3.up, Vector3.forward, 360f, _coneOfVision.VisionRadius);
// draws two lines to mark the vision angle
Vector3 visionAngleLeft = MMMaths.DirectionFromAngle(-_coneOfVision.VisionAngle / 2f, _coneOfVision.EulerAngles.y);
Vector3 visionAngleRight = MMMaths.DirectionFromAngle(_coneOfVision.VisionAngle / 2f, _coneOfVision.EulerAngles.y);
Handles.DrawLine(_coneOfVision.Center, _coneOfVision.Center + visionAngleLeft * _coneOfVision.VisionRadius);
Handles.DrawLine(_coneOfVision.Center, _coneOfVision.Center + visionAngleRight * _coneOfVision.VisionRadius);
foreach (Transform visibleTarget in _coneOfVision.VisibleTargets)
{
Handles.color = MMColors.Orange;
Handles.DrawLine(_coneOfVision.Center, visibleTarget.position);
}
}
}
}