|
|
|
|
@@ -21,14 +21,16 @@ namespace Ichni.RhythmGame
|
|
|
|
|
public string materialName;
|
|
|
|
|
public bool enableEmission;
|
|
|
|
|
public float emissionIntensity;
|
|
|
|
|
public bool zWrite;
|
|
|
|
|
|
|
|
|
|
public TrackRendererSubmodule(Track track, bool enableEmission, float emissionIntensity) : base(track)
|
|
|
|
|
public TrackRendererSubmodule(Track track, bool enableEmission, float emissionIntensity, bool zWrite) : base(track)
|
|
|
|
|
{
|
|
|
|
|
this.track.trackRendererSubmodule = this;
|
|
|
|
|
this.enableEmission = enableEmission;
|
|
|
|
|
this.emissionIntensity = emissionIntensity;
|
|
|
|
|
this.materialThemeBundleName = String.Empty;
|
|
|
|
|
this.materialName = String.Empty;
|
|
|
|
|
this.zWrite = zWrite;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void ApplyMaterial(string materialThemeBundleName, string materialName)
|
|
|
|
|
@@ -45,6 +47,7 @@ namespace Ichni.RhythmGame
|
|
|
|
|
|
|
|
|
|
public override void Refresh()
|
|
|
|
|
{
|
|
|
|
|
SetEnableZWrite();
|
|
|
|
|
SetEnableEmission();
|
|
|
|
|
SetEmissionIntensity();
|
|
|
|
|
|
|
|
|
|
@@ -74,6 +77,10 @@ namespace Ichni.RhythmGame
|
|
|
|
|
|
|
|
|
|
var container = inspector.GenerateContainer("Track Renderer Auto Orient");
|
|
|
|
|
|
|
|
|
|
var zWriteSettings = container.GenerateSubcontainer(3);
|
|
|
|
|
var zWriteToggle =
|
|
|
|
|
inspector.GenerateToggle(this, zWriteSettings, "Enable ZWrite", nameof(zWrite))
|
|
|
|
|
.AddListenerFunction(SetEnableZWrite);
|
|
|
|
|
var emissionSettings = container.GenerateSubcontainer(3);
|
|
|
|
|
var enableEmissionToggle =
|
|
|
|
|
inspector.GenerateToggle(this, emissionSettings, "Enable Emission", nameof(enableEmission))
|
|
|
|
|
@@ -81,7 +88,7 @@ namespace Ichni.RhythmGame
|
|
|
|
|
var emissionIntensityInputField =
|
|
|
|
|
inspector.GenerateInputField(this, emissionSettings, "Emission Intensity", nameof(emissionIntensity))
|
|
|
|
|
.AddListenerFunction(SetEmissionIntensity);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var materialSettings = container.GenerateSubcontainer(3);
|
|
|
|
|
var themeBundleDropdown = inspector
|
|
|
|
|
.GenerateDropdown(this, materialSettings, "Theme Bundle", ThemeBundleManager.instance.selectedThemeBundleList, nameof(materialThemeBundleName))
|
|
|
|
|
@@ -116,6 +123,11 @@ namespace Ichni.RhythmGame
|
|
|
|
|
meshRenderer.material.SetInt("_Emission", enableEmission ? 1 : 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected void SetEnableZWrite()
|
|
|
|
|
{
|
|
|
|
|
meshRenderer.material.SetInt("_ZWrite", zWrite ? 1 : 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected void SetEmissionIntensity()
|
|
|
|
|
{
|
|
|
|
|
meshRenderer.material.SetColor("_EmissionColor", Color.white * Mathf.Pow(2, emissionIntensity));
|
|
|
|
|
@@ -128,8 +140,8 @@ namespace Ichni.RhythmGame
|
|
|
|
|
{
|
|
|
|
|
public SplineRenderer splineRenderer;
|
|
|
|
|
|
|
|
|
|
public TrackRendererSubmoduleAutoOrient(Track track, bool enableEmission, float emissionIntensity, Material material = null) :
|
|
|
|
|
base(track, enableEmission, emissionIntensity)
|
|
|
|
|
public TrackRendererSubmoduleAutoOrient(Track track, bool enableEmission, float emissionIntensity, bool zWrite, Material material = null) :
|
|
|
|
|
base(track, enableEmission, emissionIntensity, zWrite)
|
|
|
|
|
{
|
|
|
|
|
this.splineRenderer = track.AddComponent<SplineRenderer>();
|
|
|
|
|
this.meshRenderer = splineRenderer.GetComponent<MeshRenderer>();
|
|
|
|
|
@@ -157,6 +169,7 @@ namespace Ichni.RhythmGame
|
|
|
|
|
public string materialName;
|
|
|
|
|
public bool enableEmission;
|
|
|
|
|
public float emissionIntensity;
|
|
|
|
|
public bool zWrite;
|
|
|
|
|
|
|
|
|
|
public TrackRendererSubmoduleAutoOrient_BM()
|
|
|
|
|
{
|
|
|
|
|
@@ -176,7 +189,7 @@ namespace Ichni.RhythmGame
|
|
|
|
|
{
|
|
|
|
|
attachedElement = GameElement_BM.GetElement(attachedElementGuid);
|
|
|
|
|
Track track = attachedElement as Track;
|
|
|
|
|
track.trackRendererSubmodule = new TrackRendererSubmoduleAutoOrient(track, enableEmission, emissionIntensity);
|
|
|
|
|
track.trackRendererSubmodule = new TrackRendererSubmoduleAutoOrient(track, enableEmission, emissionIntensity, zWrite);
|
|
|
|
|
if (materialName.Trim() != String.Empty)
|
|
|
|
|
{
|
|
|
|
|
track.trackRendererSubmodule.ApplyMaterial(materialThemeBundleName, materialName);
|
|
|
|
|
@@ -186,7 +199,7 @@ namespace Ichni.RhythmGame
|
|
|
|
|
public override void DuplicateBM(GameElement attached)
|
|
|
|
|
{
|
|
|
|
|
Track track = attached as Track;
|
|
|
|
|
track.trackRendererSubmodule = new TrackRendererSubmoduleAutoOrient(track, enableEmission, emissionIntensity);
|
|
|
|
|
track.trackRendererSubmodule = new TrackRendererSubmoduleAutoOrient(track, enableEmission, emissionIntensity, zWrite);
|
|
|
|
|
if (materialName.Trim() != String.Empty)
|
|
|
|
|
{
|
|
|
|
|
track.trackRendererSubmodule.ApplyMaterial(materialThemeBundleName, materialName);
|
|
|
|
|
@@ -203,8 +216,8 @@ namespace Ichni.RhythmGame
|
|
|
|
|
{
|
|
|
|
|
public PathGenerator pathGenerator;
|
|
|
|
|
|
|
|
|
|
public TrackRendererSubmodulePathGenerator(Track track, bool enableEmission, float emissionIntensity, Material material = null) :
|
|
|
|
|
base(track, enableEmission, emissionIntensity)
|
|
|
|
|
public TrackRendererSubmodulePathGenerator(Track track, bool enableEmission, float emissionIntensity, bool zWrite, Material material = null) :
|
|
|
|
|
base(track, enableEmission, emissionIntensity, zWrite)
|
|
|
|
|
{
|
|
|
|
|
this.pathGenerator = track.AddComponent<PathGenerator>();
|
|
|
|
|
this.meshRenderer = pathGenerator.GetComponent<MeshRenderer>();
|
|
|
|
|
@@ -232,6 +245,7 @@ namespace Ichni.RhythmGame
|
|
|
|
|
public string materialName;
|
|
|
|
|
public bool enableEmission;
|
|
|
|
|
public float emissionIntensity;
|
|
|
|
|
public bool zWrite;
|
|
|
|
|
|
|
|
|
|
public TrackRendererSubmodulePathGenerator_BM()
|
|
|
|
|
{
|
|
|
|
|
@@ -251,7 +265,7 @@ namespace Ichni.RhythmGame
|
|
|
|
|
{
|
|
|
|
|
attachedElement = GameElement_BM.GetElement(attachedElementGuid);
|
|
|
|
|
Track track = attachedElement as Track;
|
|
|
|
|
track.trackRendererSubmodule = new TrackRendererSubmodulePathGenerator(track, enableEmission, emissionIntensity);
|
|
|
|
|
track.trackRendererSubmodule = new TrackRendererSubmodulePathGenerator(track, enableEmission, emissionIntensity, zWrite);
|
|
|
|
|
if (materialName.Trim() != String.Empty)
|
|
|
|
|
{
|
|
|
|
|
track.trackRendererSubmodule.ApplyMaterial(materialThemeBundleName, materialName);
|
|
|
|
|
@@ -261,7 +275,7 @@ namespace Ichni.RhythmGame
|
|
|
|
|
public override void DuplicateBM(GameElement attached)
|
|
|
|
|
{
|
|
|
|
|
Track track = attached as Track;
|
|
|
|
|
track.trackRendererSubmodule = new TrackRendererSubmodulePathGenerator(track, enableEmission, emissionIntensity);
|
|
|
|
|
track.trackRendererSubmodule = new TrackRendererSubmodulePathGenerator(track, enableEmission, emissionIntensity, zWrite);
|
|
|
|
|
if (materialName.Trim() != String.Empty)
|
|
|
|
|
{
|
|
|
|
|
track.trackRendererSubmodule.ApplyMaterial(materialThemeBundleName, materialName);
|
|
|
|
|
@@ -279,8 +293,9 @@ namespace Ichni.RhythmGame
|
|
|
|
|
public TubeGenerator tubeGenerator;
|
|
|
|
|
public int sideCount;
|
|
|
|
|
|
|
|
|
|
public TrackRendererSubmoduleTubeGenerator(Track track, bool enableEmission, float emissionIntensity, int sideCount, Material material = null) :
|
|
|
|
|
base(track, enableEmission, emissionIntensity)
|
|
|
|
|
public TrackRendererSubmoduleTubeGenerator(Track track, bool enableEmission, float emissionIntensity, bool zWrite,
|
|
|
|
|
int sideCount, Material material = null) :
|
|
|
|
|
base(track, enableEmission, emissionIntensity, zWrite)
|
|
|
|
|
{
|
|
|
|
|
this.sideCount = sideCount;
|
|
|
|
|
|
|
|
|
|
@@ -325,6 +340,7 @@ namespace Ichni.RhythmGame
|
|
|
|
|
public string materialName;
|
|
|
|
|
public bool enableEmission;
|
|
|
|
|
public float emissionIntensity;
|
|
|
|
|
public bool zWrite;
|
|
|
|
|
public int sideCount;
|
|
|
|
|
|
|
|
|
|
public TrackRendererSubmoduleTubeGenerator_BM()
|
|
|
|
|
@@ -346,7 +362,7 @@ namespace Ichni.RhythmGame
|
|
|
|
|
{
|
|
|
|
|
attachedElement = GameElement_BM.GetElement(attachedElementGuid);
|
|
|
|
|
Track track = attachedElement as Track;
|
|
|
|
|
track.trackRendererSubmodule = new TrackRendererSubmoduleTubeGenerator(track, enableEmission, emissionIntensity, sideCount);
|
|
|
|
|
track.trackRendererSubmodule = new TrackRendererSubmoduleTubeGenerator(track, enableEmission, emissionIntensity, zWrite, sideCount);
|
|
|
|
|
if (materialName.Trim() != String.Empty)
|
|
|
|
|
{
|
|
|
|
|
track.trackRendererSubmodule.ApplyMaterial(materialThemeBundleName, materialName);
|
|
|
|
|
@@ -356,7 +372,7 @@ namespace Ichni.RhythmGame
|
|
|
|
|
public override void DuplicateBM(GameElement attached)
|
|
|
|
|
{
|
|
|
|
|
Track track = attached as Track;
|
|
|
|
|
track.trackRendererSubmodule = new TrackRendererSubmoduleTubeGenerator(track, enableEmission, emissionIntensity, sideCount);
|
|
|
|
|
track.trackRendererSubmodule = new TrackRendererSubmoduleTubeGenerator(track, enableEmission, emissionIntensity, zWrite, sideCount);
|
|
|
|
|
if (materialName.Trim() != String.Empty)
|
|
|
|
|
{
|
|
|
|
|
track.trackRendererSubmodule.ApplyMaterial(materialThemeBundleName, materialName);
|
|
|
|
|
@@ -373,8 +389,8 @@ namespace Ichni.RhythmGame
|
|
|
|
|
{
|
|
|
|
|
public SurfaceGenerator surface;
|
|
|
|
|
|
|
|
|
|
public TrackRendererSubmoduleSurface(Track track, bool enableEmission, float emissionIntensity, Material material = null) :
|
|
|
|
|
base(track, enableEmission, emissionIntensity)
|
|
|
|
|
public TrackRendererSubmoduleSurface(Track track, bool enableEmission, float emissionIntensity, bool zWrite, Material material = null) :
|
|
|
|
|
base(track, enableEmission, emissionIntensity, zWrite)
|
|
|
|
|
{
|
|
|
|
|
this.surface = track.AddComponent<SurfaceGenerator>();
|
|
|
|
|
this.meshRenderer = surface.GetComponent<MeshRenderer>();
|
|
|
|
|
@@ -402,6 +418,7 @@ namespace Ichni.RhythmGame
|
|
|
|
|
public string materialName;
|
|
|
|
|
public bool enableEmission;
|
|
|
|
|
public float emissionIntensity;
|
|
|
|
|
public bool zWrite;
|
|
|
|
|
|
|
|
|
|
public TrackRendererSubmoduleSurface_BM()
|
|
|
|
|
{
|
|
|
|
|
@@ -421,7 +438,7 @@ namespace Ichni.RhythmGame
|
|
|
|
|
{
|
|
|
|
|
attachedElement = GameElement_BM.GetElement(attachedElementGuid);
|
|
|
|
|
Track track = attachedElement as Track;
|
|
|
|
|
track.trackRendererSubmodule = new TrackRendererSubmoduleSurface(track, enableEmission, emissionIntensity);
|
|
|
|
|
track.trackRendererSubmodule = new TrackRendererSubmoduleSurface(track, enableEmission, emissionIntensity, zWrite);
|
|
|
|
|
if (materialName.Trim() != String.Empty)
|
|
|
|
|
{
|
|
|
|
|
track.trackRendererSubmodule.ApplyMaterial(materialThemeBundleName, materialName);
|
|
|
|
|
@@ -431,7 +448,7 @@ namespace Ichni.RhythmGame
|
|
|
|
|
public override void DuplicateBM(GameElement attached)
|
|
|
|
|
{
|
|
|
|
|
Track track = attached as Track;
|
|
|
|
|
track.trackRendererSubmodule = new TrackRendererSubmoduleSurface(track, enableEmission, emissionIntensity);
|
|
|
|
|
track.trackRendererSubmodule = new TrackRendererSubmoduleSurface(track, enableEmission, emissionIntensity, zWrite);
|
|
|
|
|
if (materialName.Trim() != String.Empty)
|
|
|
|
|
{
|
|
|
|
|
track.trackRendererSubmodule.ApplyMaterial(materialThemeBundleName, materialName);
|
|
|
|
|
|