恶搞更新

Signed-off-by: TRAfoer <lhf190@outlook.com>
This commit is contained in:
2025-07-22 15:38:48 +08:00
parent 551d9c2b86
commit 2dae60d368
48 changed files with 35847 additions and 59531 deletions

View File

@@ -52,6 +52,8 @@ namespace Ichni.RhythmGame
particleTracker.stopTime = stopTime;
particleTracker.themeBundleList = ThemeBundleManager.instance.loadedThemeBundleList.ConvertAll(x => x.themeBundleName);
particleTracker.materialNameList = new List<string>();
particleTracker.themeBundleName = themeBundleName;
particleTracker.materialName = materialName;
particleTracker.SetParticleMaterial(themeBundleName, materialName);
particleTracker.SetParticleSettings(prewarm, is3D, width, extendDirection, density, lifeTime, isAutoOrient, particleRotation);
return particleTracker;
@@ -64,8 +66,13 @@ namespace Ichni.RhythmGame
public void SetParticleMaterial(string themeBundleName, string materialName)
{
Material material = ThemeBundleManager.instance.GetObject<Material>(themeBundleName, materialName) ??
EditorManager.instance.basePrefabs.defaultParticleMaterial;
Material material = ThemeBundleManager.instance.GetObject<Material>(themeBundleName, materialName);
if (material == null)
{
print("Material not found: " + themeBundleName + ", " + materialName);
material = ThemeBundleManager.instance.GetObject<Material>("basic", "Basic_Track_Default");
}
Renderer particleRenderer = particle.GetComponent<Renderer>();
particleRenderer.material = Instantiate(material);
particleRenderer.InitializeShader();
@@ -143,6 +150,10 @@ namespace Ichni.RhythmGame
Inspector inspectorMain = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("Particle Tracker");
// 确保 themeBundleList 初始化
if (themeBundleList == null)
themeBundleList = ThemeBundleManager.instance.loadedThemeBundleList.ConvertAll(x => x.themeBundleName);
DynamicUISubcontainer particleSettings0 = container.GenerateSubcontainer(3);
inspector.GenerateToggle(this, particleSettings0, "Prewarm", nameof(prewarm)).AddListenerFunction(SetPrewarm);
inspector.GenerateInputField(this, particleSettings0, "Play Time", nameof(playTime));
@@ -176,8 +187,9 @@ namespace Ichni.RhythmGame
}
else
{
materialNameList = new List<string>(); // 防止为null
var objectNameDropdown =
inspector.GenerateDropdown(this, materialSettings, "Material Name", new List<string>(), nameof(materialName));
inspector.GenerateDropdown(this, materialSettings, "Material Name", materialNameList, nameof(materialName));
objectNameDropdown.dropdown.interactable = false;
} // 如果没有选择主题包,则材质名称下拉框不可用