点对点

This commit is contained in:
2025-07-26 20:12:34 +08:00
parent 4febfadd56
commit 68182d7764
11 changed files with 253 additions and 38 deletions

View File

@@ -183,7 +183,7 @@ public class RuntimePreviewEditor : EditorWindow
// 编辑Transform
var newPosition = EditorGUILayout.Vector3Field("位置", runtimeInstance.transform.localPosition);
var newRotation = EditorGUILayout.Vector3Field("旋转", runtimeInstance.transform.localEulerAngles);
var newRotation = EditorGUILayout.Vector3Field("旋转", runtimeInstance.transform.parent.localEulerAngles);
var newScale = EditorGUILayout.Vector3Field("形变", runtimeInstance.transform.localScale);
@@ -202,28 +202,45 @@ public class RuntimePreviewEditor : EditorWindow
// 应用Transform修改
if (EditorGUI.EndChangeCheck())
{
runtimeInstance.transform.localPosition = newPosition;
runtimeInstance.transform.localEulerAngles = newRotation;
runtimeInstance.transform.localPosition = new Vector3(newPosition.x, newPosition.y, 0);
runtimeInstance.transform.parent.localEulerAngles = newRotation;
runtimeInstance.transform.localScale = newScale;
runtimePreviewableAsset.position = newPosition;
runtimePreviewableAsset.position = new Vector3(newPosition.x, newPosition.y, 0);
runtimePreviewableAsset.rotation = newRotation;
runtimePreviewableAsset.scale = newScale;
runtimePreviewableAsset.canZoom = canZoom;
runtimePreviewableAsset.canPan = canPan;
var pos = runtimeInstance.transform.parent.localPosition;
if (canZoom)
{
if (!Mathf.Approximately(runtimeInstance.transform.localPosition.z,
runtimePreviewableAsset.zoom.z))
if (!Mathf.Approximately(pos.z, runtimePreviewableAsset.zoom.z))
{
var pos = runtimeInstance.transform.localPosition;
runtimeInstance.transform.localPosition = new Vector3(pos.x, pos.y, runtimePreviewableAsset.zoom.z);
runtimeInstance.transform.parent.localPosition =
new Vector3(pos.x, pos.y, runtimePreviewableAsset.zoom.z);
}
}
else
{
runtimeInstance.transform.localPosition = Vector3.zero;
runtimeInstance.transform.parent.localPosition = new Vector3(pos.x, pos.y, 0);
}
// if (canZoom)
// {
// if (!Mathf.Approximately(runtimeInstance.transform.localPosition.z,
// runtimePreviewableAsset.zoom.z))
// {
// var pos = runtimeInstance.transform.parent.localPosition;
// runtimeInstance.transform.parent.localPosition =
// new Vector3(pos.x, pos.y, runtimePreviewableAsset.zoom.z);
// }
// }
// else
// {
// runtimeInstance.transform.parent.localPosition = Vector3.zero;
// }
}
EditorGUILayout.Space();
@@ -309,9 +326,9 @@ public class RuntimePreviewEditor : EditorWindow
var previewableAsset = prefab.GetComponent<PreviewableAsset>();
if (previewableAsset && runtimePreviewableAsset)
{
previewableAsset.position = runtimeInstance.transform.localPosition;
previewableAsset.rotation = runtimeInstance.transform.localEulerAngles;
previewableAsset.scale = runtimeInstance.transform.localScale;
previewableAsset.position = runtimePreviewableAsset.position;
previewableAsset.rotation = runtimePreviewableAsset.rotation;
previewableAsset.scale = runtimePreviewableAsset.scale;
previewableAsset.canPan = runtimePreviewableAsset.canPan;
previewableAsset.canZoom = runtimePreviewableAsset.canZoom;
previewableAsset.zoom = runtimePreviewableAsset.zoom;