【发布时间】:2018-05-20 12:56:44
【问题描述】:
我正在尝试为我的对象创建粒子发射,这些对象实际上是国际象棋游戏中的棋子。我使用 Inspector 为粒子系统更改了粒子材质,它工作正常,但是,当我尝试使用脚本更改它时,什么也没有发生(黑色棋子的粒子保持粉红色)。
我不确定脚本有什么问题,是否是材质更改问题,或者我需要设置材质路径。如果有人提出解决方案,我会很高兴!
这是脚本:
public class BlackPawnParticleSystem : MonoBehaviour
{
private Material m_Material;
private ParticleSystemRenderer psr;
private void Start()
{
var ps = GetComponent<ParticleSystem>();
m_Material = GetComponent<Renderer>).material;
psr = GetComponent<ParticleSystemRenderer>);
psr.material = Resources.GetBuiltinResource<Material>("BlackBishop.mat");
}
看起来是这样的:
编辑:
代码变化:
public class BlackPawnParticleSystem : MonoBehaviour
{
private Material m_Material;
private ParticleSystemRenderer psr;
private void Start()
{
var ps = GetComponent<ParticleSystem>();
m_Material = GetComponent<Renderer>().material;
psr = GetComponent<ParticleSystemRenderer>();
psr.material = Resources.Load<Material>("BlackBishop");
}
材料检查员:
附加到对象的脚本:
【问题讨论】:
-
我猜这与将材质设置在实际上并不指向
ParticleSystem的对象上有关。 Unity 暴露ParticleSystem对象的方式很奇怪,我会研究一下。 -
我还会检查
GetBuiltinResource是否返回null,这会导致粉红色颗粒。
标签: c# unity3d particle-system