升级水插件

This commit is contained in:
2026-01-08 22:30:55 +08:00
parent febff82d24
commit ca68084264
415 changed files with 18138 additions and 7134 deletions

View File

@@ -16,6 +16,12 @@ namespace WaveHarmonic.Crest.Editor
: s_VisualizeMaterial = new(Shader.Find("Local/Debug/Visualize Signed Texture"));
#endif
static void DrawLine(Vector3 start, Vector3 end, Color color, float _)
{
Gizmos.color = color;
Gizmos.DrawLine(start, end);
}
[DrawGizmo(GizmoType.Selected | GizmoType.NonSelected)]
static void DrawGizmos(WaterRenderer target, GizmoType type)
{
@@ -51,12 +57,12 @@ namespace WaveHarmonic.Crest.Editor
// Create proxy if not present already, and proxy enabled
if (target._ProxyPlane == null && target._ShowWaterProxyPlane)
{
target._ProxyPlane = GameObject.CreatePrimitive(PrimitiveType.Plane);
target._ProxyPlane = GameObject.CreatePrimitive(PrimitiveType.Quad);
Helpers.Destroy(target._ProxyPlane.GetComponent<Collider>());
target._ProxyPlane.hideFlags = HideFlags.HideAndDontSave;
target._ProxyPlane.transform.parent = target.transform;
target._ProxyPlane.transform.SetLocalPositionAndRotation(Vector3.zero, Quaternion.identity);
target._ProxyPlane.transform.localScale = 4000f * Vector3.one;
target._ProxyPlane.transform.SetLocalPositionAndRotation(Vector3.zero, Quaternion.Euler(90f, 0f, 0f));
target._ProxyPlane.transform.localScale = 1000000f * Vector3.one;
target._ProxyPlane.GetComponent<Renderer>().sharedMaterial = new(Shader.Find(WaterRenderer.k_ProxyShader));
}
@@ -70,11 +76,6 @@ namespace WaveHarmonic.Crest.Editor
EditorWindow view = EditorWindow.GetWindow<SceneView>();
view.Repaint();
}
if (target.Root != null)
{
target.Root.gameObject.SetActive(!target._ShowWaterProxyPlane);
}
}
[DrawGizmo(GizmoType.Selected)]
@@ -87,7 +88,8 @@ namespace WaveHarmonic.Crest.Editor
var rect = target.Rect;
if (rect != Rect.zero)
{
var height = WaterRenderer.Instance ? WaterRenderer.Instance.SeaLevel : target.transform.position.y;
var water = WaterRenderer.Instance;
var height = water ? water.SeaLevel : target.transform.position.y;
Gizmos.color = Color.magenta;
Gizmos.DrawWireCube
(
@@ -146,7 +148,8 @@ namespace WaveHarmonic.Crest.Editor
var rect = target.Rect;
if (rect != Rect.zero)
{
var height = WaterRenderer.Instance ? WaterRenderer.Instance.SeaLevel : target.transform.position.y;
var water = WaterRenderer.Instance;
var height = water ? water.SeaLevel : target.transform.position.y;
Gizmos.color = Color.magenta;
Gizmos.DrawWireCube
(
@@ -209,6 +212,14 @@ namespace WaveHarmonic.Crest.Editor
}
}
[DrawGizmo(GizmoType.Selected | GizmoType.NonSelected)]
static void DrawGizmos(CollisionAreaVisualizer target, GizmoType type)
{
var water = WaterRenderer.Instance;
if (water == null) return;
target.Render(water, DrawLine);
}
[DrawGizmo(GizmoType.Selected | GizmoType.NonSelected)]
static void DrawGizmos(DepthProbe target, GizmoType type)
{