嘟嘟哒嘟嘟哒

Signed-off-by: TRAfoer <lhf190@outlook.com>
This commit is contained in:
2025-07-27 13:35:26 +08:00
parent cfb95a3a7c
commit 8da603c702
10 changed files with 3461 additions and 68 deletions

View File

@@ -37,7 +37,7 @@ namespace Ichni.RhythmGame
this.zWrite = zWrite;
this.uvScale = uvScale;
this.uvOffset = uvOffset;
if (!HaveSameSubmodule)
{
this.track.trackRendererSubmodule = this;
@@ -65,10 +65,10 @@ namespace Ichni.RhythmGame
SetEmissionIntensity();
SetUV();
if (track.trackTimeSubmodule is TrackTimeSubmoduleMovable)
if (track.trackTimeSubmodule is TrackTimeSubmoduleMovable trackTimeSubmoduleMovable)
{
meshGenerator.clipFrom = 0;
meshGenerator.clipTo = 0;
meshGenerator.clipFrom = trackTimeSubmoduleMovable.tailPercent;
meshGenerator.clipTo = trackTimeSubmoduleMovable.headPercent;
}
else
{
@@ -98,7 +98,7 @@ namespace Ichni.RhythmGame
var container = inspector.GenerateContainer("Track Renderer " + submoduleName[submoduleNameIndex]);
var zWriteSettings = container.GenerateSubcontainer(3);
var zWriteToggle =
inspector.GenerateToggle(this, zWriteSettings, "Enable ZWrite", nameof(zWrite))
.AddListenerFunction(SetEnableZWrite);
@@ -109,7 +109,7 @@ namespace Ichni.RhythmGame
var emissionIntensityInputField =
inspector.GenerateInputField(this, emissionSettings, "Emission Intensity", nameof(emissionIntensity))
.AddListenerFunction(SetEmissionIntensity);
var uvSettings = container.GenerateSubcontainer(1);
var uvScaleInputField =
inspector.GenerateVector2InputField(this, uvSettings, "UV Scale", nameof(uvScale))
@@ -193,7 +193,7 @@ namespace Ichni.RhythmGame
this.splineRenderer.doubleSided = true;
this.splineRenderer.clipFrom = 0;
this.splineRenderer.clipTo = 1;
this.splineRenderer.updateMethod = SplineUser.UpdateMethod.LateUpdate;
this.splineRenderer.updateMethod = SplineUser.UpdateMethod.Update;
this.meshRenderer.material = renderMaterial;
this.splineRenderer.color = Color.white;
this.splineRenderer.uvRotation = 90;
@@ -240,7 +240,7 @@ namespace Ichni.RhythmGame
{
attachedElement = GameElement_BM.GetElement(attachedElementGuid);
Track track = attachedElement as Track;
track.trackRendererSubmodule =
track.trackRendererSubmodule =
new TrackRendererSubmoduleAutoOrient(track, enableEmission, emissionIntensity, zWrite, uvScale, uvOffset);
if (materialName.Trim() != String.Empty)
{
@@ -251,7 +251,7 @@ namespace Ichni.RhythmGame
public override void DuplicateBM(GameElement attached)
{
Track track = attached as Track;
track.trackRendererSubmodule =
track.trackRendererSubmodule =
new TrackRendererSubmoduleAutoOrient(track, enableEmission, emissionIntensity, zWrite, uvScale, uvOffset);
if (materialName.Trim() != String.Empty)
{
@@ -269,7 +269,7 @@ namespace Ichni.RhythmGame
{
public PathGenerator pathGenerator;
public TrackRendererSubmodulePathGenerator(Track track, bool enableEmission, float emissionIntensity, bool zWrite,
public TrackRendererSubmodulePathGenerator(Track track, bool enableEmission, float emissionIntensity, bool zWrite,
Vector2 uvScale, Vector2 uvOffset, Material material = null) :
base(track, enableEmission, emissionIntensity, zWrite, uvScale, uvOffset)
{
@@ -281,7 +281,7 @@ namespace Ichni.RhythmGame
this.pathGenerator.doubleSided = true;
this.pathGenerator.clipFrom = 0;
this.pathGenerator.clipTo = 1;
this.pathGenerator.updateMethod = SplineUser.UpdateMethod.LateUpdate;
this.pathGenerator.updateMethod = SplineUser.UpdateMethod.Update;
this.meshRenderer.material = renderMaterial;
this.pathGenerator.color = Color.white;
this.pathGenerator.uvRotation = 90;
@@ -328,7 +328,7 @@ namespace Ichni.RhythmGame
{
attachedElement = GameElement_BM.GetElement(attachedElementGuid);
Track track = attachedElement as Track;
track.trackRendererSubmodule =
track.trackRendererSubmodule =
new TrackRendererSubmodulePathGenerator(track, enableEmission, emissionIntensity, zWrite, uvScale, uvOffset);
if (materialName.Trim() != String.Empty)
{
@@ -339,7 +339,7 @@ namespace Ichni.RhythmGame
public override void DuplicateBM(GameElement attached)
{
Track track = attached as Track;
track.trackRendererSubmodule =
track.trackRendererSubmodule =
new TrackRendererSubmodulePathGenerator(track, enableEmission, emissionIntensity, zWrite, uvScale, uvOffset);
if (materialName.Trim() != String.Empty)
{
@@ -372,7 +372,7 @@ namespace Ichni.RhythmGame
this.tubeGenerator.doubleSided = true;
this.tubeGenerator.clipFrom = 0;
this.tubeGenerator.clipTo = 1;
this.tubeGenerator.updateMethod = SplineUser.UpdateMethod.LateUpdate;
this.tubeGenerator.updateMethod = SplineUser.UpdateMethod.Update;
this.meshRenderer.material = renderMaterial;
this.tubeGenerator.color = Color.white;
this.tubeGenerator.uvRotation = 90;
@@ -411,7 +411,7 @@ namespace Ichni.RhythmGame
public bool enableEmission;
public float emissionIntensity;
public bool zWrite; // 新增
public int sideCount;
public int sideCount;
public Vector2 uvScale = Vector2.one;
public Vector2 uvOffset = Vector2.zero;
@@ -437,7 +437,7 @@ namespace Ichni.RhythmGame
{
attachedElement = GameElement_BM.GetElement(attachedElementGuid);
Track track = attachedElement as Track;
track.trackRendererSubmodule =
track.trackRendererSubmodule =
new TrackRendererSubmoduleTubeGenerator(track, enableEmission, emissionIntensity, zWrite, sideCount, uvScale, uvOffset);
if (materialName.Trim() != String.Empty)
{
@@ -448,7 +448,7 @@ namespace Ichni.RhythmGame
public override void DuplicateBM(GameElement attached)
{
Track track = attached as Track;
track.trackRendererSubmodule =
track.trackRendererSubmodule =
new TrackRendererSubmoduleTubeGenerator(track, enableEmission, emissionIntensity, zWrite, sideCount, uvScale, uvOffset);
if (materialName.Trim() != String.Empty)
{
@@ -466,7 +466,7 @@ namespace Ichni.RhythmGame
{
public SurfaceGenerator surface;
public TrackRendererSubmoduleSurface(Track track, bool enableEmission, float emissionIntensity, bool zWrite,
public TrackRendererSubmoduleSurface(Track track, bool enableEmission, float emissionIntensity, bool zWrite,
Vector2 uvScale, Vector2 uvOffset, Material material = null) :
base(track, enableEmission, emissionIntensity, zWrite, uvScale, uvOffset)
{
@@ -525,7 +525,7 @@ namespace Ichni.RhythmGame
{
attachedElement = GameElement_BM.GetElement(attachedElementGuid);
Track track = attachedElement as Track;
track.trackRendererSubmodule =
track.trackRendererSubmodule =
new TrackRendererSubmoduleSurface(track, enableEmission, emissionIntensity, zWrite, uvScale, uvOffset);
if (materialName.Trim() != String.Empty)
{
@@ -536,7 +536,7 @@ namespace Ichni.RhythmGame
public override void DuplicateBM(GameElement attached)
{
Track track = attached as Track;
track.trackRendererSubmodule =
track.trackRendererSubmodule =
new TrackRendererSubmoduleSurface(track, enableEmission, emissionIntensity, zWrite, uvScale, uvOffset);
if (materialName.Trim() != String.Empty)
{