using UnityEngine;
|
using System.Collections.Generic;
|
|
#if UNITY_EDITOR
|
using UnityEditor;
|
#endif
|
|
[RequireComponent(typeof(BoxCollider))]
|
public class AreaTriggerView : MonoBehaviour
|
{
|
public int id;
|
public BoxCollider boxCollider;
|
public List<MapEventView> eventList = new List<MapEventView>();
|
}
|
|
#if UNITY_EDITOR
|
[CustomEditor(typeof(AreaTriggerView))]
|
public class AreaTriggerViewEditor : Editor
|
{
|
private void OnEnable()
|
{
|
AreaTriggerView _target = target as AreaTriggerView;
|
_target.boxCollider = _target.GetComponent<BoxCollider>();
|
}
|
|
public override void OnInspectorGUI()
|
{
|
serializedObject.Update();
|
|
AreaTriggerView _target = target as AreaTriggerView;
|
Transform _root = _target.transform;
|
|
_target.id = EditorGUILayout.IntField("任务ID", _target.id);
|
_target.name = string.Format("Area_{0}", _target.id);
|
|
if (GUILayout.Button("矫正为屏幕中心点的坐标"))
|
{
|
SceneView _sceneView = SceneView.lastActiveSceneView;
|
Camera _camera = _sceneView.camera;
|
Vector3 _screenPosition = _camera.ViewportToScreenPoint(new Vector3(0.5f, 0.5f));
|
Ray _ray = _camera.ScreenPointToRay(_screenPosition);
|
RaycastHit _raycastHit;
|
if (Physics.Raycast(_ray, out _raycastHit, 10000, LayerUtility.WalkbleMask))
|
{
|
_target.transform.position = _raycastHit.point;
|
}
|
}
|
|
if (GUILayout.Button("新建刷怪数据"))
|
{
|
RefreshNPCView _refreshNPCView = SoMapView.GeneralRefreshNpcView(_root);
|
|
_target.eventList.Add(_refreshNPCView);
|
|
Selection.activeGameObject = _refreshNPCView.gameObject;
|
}
|
|
if (GUILayout.Button("新建障碍点数据"))
|
{
|
CreateImpasseView _createImpasseView = SoMapView.GeneralCreateImpasseView(_root);
|
|
_target.eventList.Add(_createImpasseView);
|
|
Selection.activeGameObject = _createImpasseView.gameObject;
|
}
|
|
if (GUI.changed)
|
{
|
EditorUtility.SetDirty(target);
|
serializedObject.ApplyModifiedProperties();
|
}
|
}
|
}
|
#endif
|