@@ -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;
|
||||
} // 如果没有选择主题包,则材质名称下拉框不可用
|
||||
|
||||
|
||||
Reference in New Issue
Block a user