using UnityEngine;
|
|
#if UNITY_EDITOR
|
using UnityEditor;
|
#endif
|
|
[RequireComponent(typeof(BoxCollider))]
|
public class CreateImpasseView : MapEventView
|
{
|
public int id;
|
public BoxCollider boxCollider;
|
public int effectID = -1;
|
}
|
|
|
#if UNITY_EDITOR
|
[CustomEditor(typeof(CreateImpasseView))]
|
public class CreateImpasseViewEditor : Editor
|
{
|
private void OnEnable()
|
{
|
CreateImpasseView _target = target as CreateImpasseView;
|
_target.boxCollider = _target.GetComponent<BoxCollider>();
|
}
|
|
public override void OnInspectorGUI()
|
{
|
serializedObject.Update();
|
|
CreateImpasseView _target = target as CreateImpasseView;
|
|
_target.id = EditorGUILayout.IntField("障碍点ID", _target.id);
|
_target.name = string.Format("Impasse: {0}", _target.id);
|
_target.effectID = EditorGUILayout.IntField("特效ID", _target.effectID);
|
|
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 (GUI.changed)
|
{
|
EditorUtility.SetDirty(target);
|
serializedObject.ApplyModifiedProperties();
|
}
|
}
|
}
|
#endif
|