Files
ichni_Official/Assets/Scripts/Game/GameElements/Track/TrackSubmodules/TrackRendererSubmodule/TrackRendererSubmoduleAutoOrient.cs
SoulliesOfficial 1bc9af280b 同步
2026-04-03 10:53:11 -04:00

45 lines
1.7 KiB
C#

using System;
using Dreamteck.Splines;
using Ichni.RhythmGame.Beatmap;
using UniRx;
using UnityEngine;
namespace Ichni.RhythmGame
{
public class TrackRendererSubmoduleAutoOrient : TrackRendererSubmodule
{
#region [] Components
public SplineRenderer splineRenderer;
#endregion
#region [] Initialization
public TrackRendererSubmoduleAutoOrient(Track track, bool enableEmission, float emissionIntensity,
bool zWrite, Vector2 uvScale, Vector2 uvOffset, Material material = null) :
base(track, enableEmission, emissionIntensity, zWrite, uvScale, uvOffset)
{
this.splineRenderer = track.trackRenderer.AddComponent<SplineRenderer>();
this.meshRenderer = splineRenderer.GetComponent<MeshRenderer>();
this.meshGenerator = splineRenderer;
// 真正安全地仅激活该模块需要用到的引擎
this.splineRenderer.enabled = true;
this.renderMaterial = material == null ? GameManager.Instance.basePrefabs.defaultTrackMaterial : material;
this.splineRenderer.spline = track.trackPathSubmodule.path;
this.splineRenderer.doubleSided = true;
this.splineRenderer.clipFrom = 0;
this.splineRenderer.clipTo = 1;
this.splineRenderer.updateMethod = SplineUser.UpdateMethod.Update;
this.meshRenderer.material = renderMaterial;
this.splineRenderer.color = Color.white;
this.splineRenderer.uvRotation = 90;
this.splineRenderer.uvMode = MeshGenerator.UVMode.UniformClip;
SetMesh();
}
#endregion
}
}