Ejemplo n.º 1
0
    public override void OnInspectorGUI()
    {
        Obj           = new SerializedObject(this.target);
        this.firetime = Obj.FindProperty("firetime");
        this.duration = Obj.FindProperty("duration");

        EditorGUILayout.PropertyField(firetime);
        EditorGUILayout.PropertyField(duration);


        ManualSkillParticleEmitterItem targetObj = this.target as ManualSkillParticleEmitterItem;

        //
        Obj.ApplyModifiedProperties();

        if (GUILayout.Button("添加技能粒子"))
        {
            GameObject sub = new GameObject();
            sub.name = "SubParticle";
            sub.transform.SetParent(targetObj.transform);
            SkillParticleActionItem sg = sub.AddComponent <SkillParticleActionItem>();
            sg.Duration = 1;
            sg.export   = true;
        }
    }
Ejemplo n.º 2
0
    private static Example.SkillParticleEmitter ExportParticleEmitter(SkillParticleEmitterItem emitter, List <Example.SkillParticleEmitter> emitters)
    {
        Example.SkillParticleEmitter particleEmitter = new Example.SkillParticleEmitter();
        List <Example.SkillParticle> skillParticles  = new List <Example.SkillParticle>();
        var particles = emitter.GetComponentsInChildren <SkillParticleActionItem>();

        foreach (var particle in particles)
        {
            ExportSkillParticle(particle, skillParticles);
        }
        if (emitter is AutoSkillParticleEmitterItem)
        {
            AutoSkillParticleEmitterItem autoEmitter = (AutoSkillParticleEmitterItem)emitter;
            particleEmitter.emitterType      = autoEmitter.emitterType;
            particleEmitter.StartTime        = Mathf.FloorToInt(autoEmitter.Firetime * 1000);
            particleEmitter.Duration         = Mathf.FloorToInt(autoEmitter.Duration * 1000);
            particleEmitter.EmitterShape     = ExportSkillShape(autoEmitter.emitterShape);
            particleEmitter.EmitterPosition  = MathUtil.ToVector3f(autoEmitter.emitterOffset);
            particleEmitter.ParticleTemplate = skillParticles.Count > 0 ? skillParticles[0] : null;
            particleEmitter.Particles        = skillParticles;
        }
        else if (emitter is ManualSkillParticleEmitterItem)
        {
            ManualSkillParticleEmitterItem autoEmitter = (ManualSkillParticleEmitterItem)emitter;
            particleEmitter.emitterType = autoEmitter.emitterType;
            particleEmitter.StartTime   = Mathf.FloorToInt(autoEmitter.Firetime * 1000);
            particleEmitter.Duration    = Mathf.FloorToInt(autoEmitter.Duration * 1000);
            particleEmitter.Particles   = skillParticles;
        }
        emitters.Add(particleEmitter);
        return(particleEmitter);
    }