Gradient
This commit is contained in:
@@ -112,7 +112,8 @@ namespace Ichni.RhythmGame
|
||||
true, this, GameCamera.CameraViewType.Perspective, 60, 10));
|
||||
var generateTrailButton = inspector.GenerateButton(this, generation, "Trail",
|
||||
() => Trail.GenerateElement("New Trail", Guid.NewGuid(), new List<string>(),
|
||||
true, this, 1, true, 1, AnimationCurve.Constant(0,1,1)));
|
||||
true, this, 1, true, 1,
|
||||
AnimationCurve.Constant(0,1,1), ColorExtensions.DefaultGradient()));
|
||||
var environmentObjectButton = inspector.GenerateButton(this, generation, "Environment Object",
|
||||
() => TemporaryObject.GenerateElement("New Environment Object", Guid.NewGuid(), new List<string>(),
|
||||
true, this));
|
||||
|
||||
@@ -101,7 +101,8 @@ namespace Ichni.RhythmGame
|
||||
var generateTrailButton = inspector.GenerateButton(this, generation, "Generate Trail", () =>
|
||||
{
|
||||
Trail.GenerateElement("New Trail", Guid.NewGuid(), new List<string>(), true,
|
||||
this, 1, true, 1, AnimationCurve.Constant(0, 1, 1));
|
||||
this, 1, true, 1,
|
||||
AnimationCurve.Constant(0, 1, 1), ColorExtensions.DefaultGradient());
|
||||
});
|
||||
var environmentObjectButton = inspector.GenerateButton(this, generation, "Environment Object",
|
||||
() => TemporaryObject.GenerateElement("New Environment Object", Guid.NewGuid(), new List<string>(),
|
||||
|
||||
@@ -17,29 +17,34 @@ namespace Ichni.RhythmGame
|
||||
public bool isAutoOrient;
|
||||
public float widthMultiplier;
|
||||
public AnimationCurve widthCurve;
|
||||
public Gradient gradient;
|
||||
|
||||
public TransformSubmodule transformSubmodule { get; set; }
|
||||
|
||||
public static Trail GenerateElement(string name, Guid id, List<string> tags, bool isFirstGenerated,
|
||||
GameElement parentElement, float visibleTimeLength, bool isAutoOrient, float widthMultiplier,
|
||||
AnimationCurve widthCurve, Material material = null)
|
||||
AnimationCurve widthCurve, Gradient gradient, Material material = null)
|
||||
{
|
||||
gradient ??= ColorExtensions.DefaultGradient();
|
||||
|
||||
Trail trail = Instantiate(EditorManager.instance.basePrefabs.trail, parentElement.transform).GetComponent<Trail>();
|
||||
trail.trailRenderer = trail.GetComponent<TrailRenderer>();
|
||||
|
||||
|
||||
trail.Initialize(name, id, tags, isFirstGenerated, parentElement);
|
||||
|
||||
trail.renderMaterial = material == null ? EditorManager.instance.basePrefabs.defaultTrailMaterial : material;
|
||||
trail.trailRenderer.material = trail.renderMaterial;
|
||||
trail.visibleTimeLength = visibleTimeLength;
|
||||
trail.isAutoOrient = isAutoOrient;
|
||||
trail.widthMultiplier = widthMultiplier;
|
||||
trail.widthCurve = widthCurve;
|
||||
trail.gradient = gradient;
|
||||
|
||||
trail.trailRenderer.material = trail.renderMaterial;
|
||||
trail.trailRenderer.time = visibleTimeLength;
|
||||
trail.trailRenderer.alignment = isAutoOrient ? LineAlignment.View : LineAlignment.TransformZ;
|
||||
trail.trailRenderer.widthMultiplier = widthMultiplier;
|
||||
trail.trailRenderer.widthCurve = widthCurve;
|
||||
trail.trailRenderer.colorGradient = gradient;
|
||||
|
||||
return trail;
|
||||
}
|
||||
@@ -83,6 +88,20 @@ namespace Ichni.RhythmGame
|
||||
widthCurveWindow.SetAsCustomCurve();
|
||||
widthCurveWindow.closeButton.onClick.AddListener(() => trailRenderer.widthCurve = widthCurve);
|
||||
});
|
||||
|
||||
var colorSettings = container.GenerateSubcontainer(3);
|
||||
var gradientColorKeysButton = inspector.GenerateButton(this, colorSettings, "Gradient Color Keys", () =>
|
||||
{
|
||||
var gradientWindow = inspector.GenerateCompositeParameterWindow(this, "Gradient Color Keys", nameof(gradient));
|
||||
gradientWindow.SetAsGradientColorKeys();
|
||||
gradientWindow.closeButton.onClick.AddListener(() => trailRenderer.colorGradient = gradient);
|
||||
});
|
||||
var gradientAlphaKeysButton = inspector.GenerateButton(this, colorSettings, "Gradient Alpha Keys", () =>
|
||||
{
|
||||
var gradientWindow = inspector.GenerateCompositeParameterWindow(this, "Gradient Alpha Keys", nameof(gradient));
|
||||
gradientWindow.SetAsGradientAlphaKeys();
|
||||
gradientWindow.closeButton.onClick.AddListener(() => trailRenderer.colorGradient = gradient);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -116,6 +135,7 @@ namespace Ichni.RhythmGame
|
||||
public bool isAutoOrient;
|
||||
public float widthMultiplier;
|
||||
public AnimationCurve widthCurve;
|
||||
public Gradient gradient;
|
||||
|
||||
public Trail_BM()
|
||||
{
|
||||
@@ -138,14 +158,14 @@ namespace Ichni.RhythmGame
|
||||
{
|
||||
matchedElement = Trail.GenerateElement(elementName, elementGuid, tags,
|
||||
false, GetElement(attachedElementGuid),
|
||||
visibleTimeLength, isAutoOrient, widthMultiplier, widthCurve);
|
||||
visibleTimeLength, isAutoOrient, widthMultiplier, widthCurve, gradient);
|
||||
}
|
||||
|
||||
public override GameElement DuplicateBM(GameElement parent)
|
||||
{
|
||||
return Trail.GenerateElement(elementName, Guid.NewGuid(), tags,
|
||||
false, parent, visibleTimeLength,
|
||||
isAutoOrient, widthMultiplier, widthCurve);
|
||||
isAutoOrient, widthMultiplier, widthCurve, gradient);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user