Это ошибка в какой-то определенной версии Unity. Это должно быть исправлено в Unity 2017.2. Что происходит, так это то, что когда вы меняете цвет ParticleSystem
, он теряет свою привязку к материалу.
Вы можете либо обновить Unity до последней версии, либо вручную прикрепить эту ссылку на материал или новый материал обратно к ParticleSystem
после установки цвета.
public GameObject smoke;
void Start()
{
GameObject smokePuff = Instantiate(smoke, transform.position, Quaternion.identity) as GameObject;
ParticleSystem ps = smokePuff.GetComponent<ParticleSystem>();
ParticleSystem.MainModule psmain = ps.main;
psmain.startColor = gameObject.GetComponent<SpriteRenderer>().color;
//Assign that material to the particle renderer
ps.GetComponent<Renderer>().material = createParticleMaterial();
}
Material createParticleMaterial()
{
//Create Particle Shader
Shader particleShder = Shader.Find("Particles/Alpha Blended Premultiply");
//Create new Particle Material
Material particleMat = new Material(particleShder);
Texture particleTexture = null;
//Find the default "Default-Particle" Texture
foreach (Texture pText in Resources.FindObjectsOfTypeAll<Texture>())
if (pText.name == "Default-Particle")
particleTexture = pText;
//Add the particle "Default-Particle" Texture to the material
particleMat.mainTexture = particleTexture;
return particleMat;
}
ИЗМЕНИТЬ:
Еще две вещи, которые нужно знать о создании системы частиц и проблеме с розовыми частицами:
1. Если вы создаете свою систему частиц из меню Компонент ---> Эффекты ---> Система частиц, Unity не< /strong> прикрепите материал к системе частиц, чтобы он был розовым. Вам нужно будет использовать приведенный выше код для создания нового материала или сделать это вручную из редактора. Вы получите розовый ParticleSystem, если не сделаете этого.
Ваша проблема либо в этом, либо в справочной ошибке, описанной выше.
2. Если вы создаете свою систему частиц из меню GameObject ---> Effects ---> Particle System, Unity создаст новый GameObject, присоединит Система частиц и материал для нее. У вас не должно быть проблем с розовыми частицами, если только это не ошибка, о которой я говорил, когда частицы теряют связь с материалом при изменении цвета.
person
Programmer
schedule
20.09.2017