Unity3d-更改粒子系统的材质颜色
我的敌人有好几种生命,用颜色来象征。 蓝色内红色内黄色-当红色敌人被射杀时,红色被“吹走”(粒子系统),敌人变成蓝色-最后一部分起作用:) 我的问题是访问粒子系统游戏对象的材质。Unity3d-更改粒子系统的材质颜色,unity3d,particle-system,Unity3d,Particle System,我的敌人有好几种生命,用颜色来象征。 蓝色内红色内黄色-当红色敌人被射杀时,红色被“吹走”(粒子系统),敌人变成蓝色-最后一部分起作用:) 我的问题是访问粒子系统游戏对象的材质。 -这就是我到目前为止所做的: public GameObject explosion; // particle system from the editor private Material xm; // cashed Material "pointer" void sta
-这就是我到目前为止所做的:
public GameObject explosion; // particle system from the editor
private Material xm; // cashed Material "pointer"
void start() {
xm = enemyExplosion.GetComponent<ParticleSystemRenderer>().material;
}
. . .
void Damage( GameObject enemy )
{
EnemyMove e = enemy.GetComponent<EnemyMove>();
xm.color = e.colors[e.life-1]; // line 65
GameObject explosion = Instantiate( enemyExplosion, enemy.transform.position, enemy.transform.rotation );
if (--e.life <= 0)
Destroy(enemy);
}
公开游戏对象爆炸;//编辑器中的粒子系统
私人材料xm;//现金材料“指针”
void start(){
xm=enemyExplosion.GetComponent().material;
}
. . .
虚空伤害(游戏对象敌人)
{
EnemyMove e=敌方.GetComponent();
xm.color=e.colors[e.life-1];//第65行
游戏对象爆炸=实例化(enemyExplosion,敌方.transform.position,敌方.transform.rotation);
如果(--e.life应该有大写字母S
,否则它永远不会被称为杰伊斯,我又做了一次-现在它可以工作了(将“材料”改为“共享材料”),再次感谢:)Ups,我说得太快了-sharedMaterial确实在所有实例之间共享-是否可以仅更改当前实例的颜色?是的..不要使用sharedMaterial
但是material
编译器欺骗了我…我已经修复了它:在粒子系统实例化后更改材质颜色-现在我t工作正常(看起来很棒!),但每次敌人命中都有两个getComponent调用:(