【问题标题】:Unity ParticleSystem code , how it works?Unity ParticleSystem 代码,它是如何工作的?
【发布时间】:2018-12-10 10:50:33
【问题描述】:

我们有来自 Unity 文档的粒子系统代码:

public class ExampleClass : MonoBehaviour {
    void Start() {
        ParticleSystem ps = GetComponent<ParticleSystem>();
        var em = ps.emission;
        em.enabled = true;

        em.type = ParticleSystemEmissionType.Time;

        em.SetBursts(
            new ParticleSystem.Burst[]{
                new ParticleSystem.Burst(2.0f, 100),
                new ParticleSystem.Burst(4.0f, 100)
            });
    }
}

1) var 是指 ParticleSystem.EmissionModule 吗?
2) 不写ps.emission = em;,em 是如何影响 ps.emission 的?

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    var 只是让编译器找出类型的一种方法。如果你愿意,你也可以把它完整地写出来。您可以将光标放在var 上进行检查。您应该看到 ParticleSystem.EmissionModule 作为推断的类型。

    1. ParticleSystem.EmissionModule 提供对粒子系统发射模块的访问权限,以便您管理其属性。

    文档内容如下:

    访问粒子系统发射模块。

    粒子系统模块不需要重新分配回 系统;它们是接口而不是独立的对象。

    【讨论】:

    • 感谢您对第一个问题的澄清,第二个我还没有得到它;EmissionModule 是一个接口吗?如果是,我认为我们不能直接从接口创建对象,如果不是,它是什么以及它是如何工作的??
    • 你可以。你不能做的是创建一个Interface 的实例。标记为abstract 的类也是如此。如果我有一个Istudent 接口和一个实现该接口的Student 类,我可以通过以下方式创建一个学生对象:Istudent student=new Student();。我希望这会有所帮助。
    • 谢谢你,真正的实例与对象不同,它们是不同的东西,最后一个问题 EmissionModule 实例 em 将如何修改 ps.emission 属性,如 'em.enabled = true;'如何在不使用 ps.emission = em 的情况下进入 ps.emission.enabled;行吗?
    • 如文档中所述,ParticleSystem.EmissionModule 只是设置粒子系统的一些发射属性的一种方式。你不能设置ps.emission=em 或类似的东西。
    猜你喜欢
    • 1970-01-01
    • 2017-01-29
    • 1970-01-01
    • 1970-01-01
    • 2019-10-12
    • 2018-11-10
    • 2018-06-04
    • 2018-02-27
    • 1970-01-01
    相关资源
    最近更新 更多