feat:场景视图添加属性编辑,添加轮廓显示
This commit is contained in:
@@ -6,13 +6,35 @@ namespace SceneView
|
||||
{
|
||||
public class CanvasControl : MonoBehaviour
|
||||
{
|
||||
public SceneViewPanel? sceneViewPanel;
|
||||
|
||||
public const string ViewCanvasName = "_SceneViewCanvas";
|
||||
public const string ShowAim = "";
|
||||
|
||||
public static Vector2 panelSize = new Vector2(500, 800);
|
||||
|
||||
public const string ViewCanvasName = "_SceneViewCanvas";
|
||||
public const string ShowAim = "LOGO";
|
||||
|
||||
private static GameObject _focusObject;
|
||||
public SceneViewPanel? sceneViewPanel;
|
||||
public ParametersPanel? parametersPanel;
|
||||
|
||||
public static GameObject FocusGameObject
|
||||
{
|
||||
get => _focusObject;
|
||||
set
|
||||
{
|
||||
if (value != _focusObject)
|
||||
{
|
||||
if (_focusObject)
|
||||
{
|
||||
var outline=_focusObject.GetComponent<Outline>();
|
||||
if (outline)
|
||||
Destroy(outline);
|
||||
}
|
||||
_focusObject = value;
|
||||
_focusObject.AddComponent<Outline>();
|
||||
OnChangeFocusObject?.Invoke(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void Start()
|
||||
{
|
||||
InitCanvas();
|
||||
@@ -20,17 +42,26 @@ namespace SceneView
|
||||
|
||||
public void Update()
|
||||
{
|
||||
if (Input.GetKeyDown(KeyCode.F2))
|
||||
if (Input.GetKeyDown(KeyCode.F3))
|
||||
{
|
||||
Debug.Log("切换");
|
||||
// Debug.Log("切换");
|
||||
parametersPanel.gameObject.SetActive(!parametersPanel.gameObject.activeSelf);
|
||||
sceneViewPanel.gameObject.SetActive(!sceneViewPanel.gameObject.activeSelf);
|
||||
if (sceneViewPanel.gameObject.activeSelf)
|
||||
{
|
||||
sceneViewPanel.Refresh();
|
||||
}
|
||||
}
|
||||
// if (sceneViewPanel.gameObject.activeSelf)
|
||||
// {
|
||||
// sceneViewPanel.Refresh();
|
||||
// }
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
if (sceneViewPanel) Destroy(sceneViewPanel.gameObject);
|
||||
if (parametersPanel) Destroy(parametersPanel.gameObject);
|
||||
}
|
||||
|
||||
public static event Action<GameObject> OnChangeFocusObject;
|
||||
|
||||
private void InitCanvas()
|
||||
{
|
||||
var canvasObj = new GameObject(ViewCanvasName);
|
||||
@@ -41,11 +72,13 @@ namespace SceneView
|
||||
canvasObj.AddComponent<GraphicRaycaster>();
|
||||
DontDestroyOnLoad(canvasObj);
|
||||
|
||||
sceneViewPanel=CreateSceneViewPanel(canvasObj.transform);
|
||||
sceneViewPanel = CreateSceneViewPanel(canvasObj.transform);
|
||||
parametersPanel = CreateParametersPanel(canvasObj.transform);
|
||||
}
|
||||
|
||||
public static SceneViewPanel CreateSceneViewPanel(Transform parent)
|
||||
{
|
||||
var panelObj = new GameObject("SceneViewPanel");
|
||||
var panelObj = new GameObject(ViewCanvasName);
|
||||
panelObj.transform.SetParent(parent, false);
|
||||
var sceneViewPanel = panelObj.AddComponent<SceneViewPanel>();
|
||||
var panelImage = panelObj.AddComponent<Image>();
|
||||
@@ -56,5 +89,15 @@ namespace SceneView
|
||||
|
||||
return sceneViewPanel;
|
||||
}
|
||||
|
||||
public ParametersPanel CreateParametersPanel(Transform parent)
|
||||
{
|
||||
var panelObj = new GameObject(ViewCanvasName);
|
||||
panelObj.transform.SetParent(parent, false);
|
||||
var parametersViewPanel = panelObj.AddComponent<ParametersPanel>();
|
||||
var panelImage = panelObj.AddComponent<Image>();
|
||||
panelImage.color = new Color(0.5f, 0.5f, 0.5f, 0.3f);
|
||||
return parametersViewPanel;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user