예제 #1
0
    public static SkillParticle CreateSkillParticle(SkillParticleEmitter skillEmitter, GameObject effectPrefab, int startFrame, int duration, Example.SkillPath.PathType pathType, Example.SkillShapeNew.ShapeType shapeType)
    {
        var go = CreateGameObject(skillEmitter.transform, "Particle");

        var path  = CreateSkillPath(go, pathType);
        var shape = CreateSkillShape(go, shapeType);

        var skillParticle = go.AddComponent <SkillParticle> ();

        //var effect = InstantiateGameObject (go.transform,effectPrefab,"Effect");

        skillParticle.path       = path;
        skillParticle.hitShape   = shape;
        skillParticle.startFrame = startFrame;
        skillParticle.duration   = duration;
        skillParticle.effect     = effectPrefab;
        skillParticle.effectName = effectPrefab != null?effectPrefab.name:"";

        return(skillParticle);
    }
예제 #2
0
    private static Example.SkillParticleEmitter ExportParticleEmitter(SkillParticleEmitter emitter, List <Example.SkillParticleEmitter> emitters)
    {
        Example.SkillParticleEmitter particleEmitter = new Example.SkillParticleEmitter();


        List <Example.SkillParticle> skillParticles = new List <Example.SkillParticle> ();
        var particles = emitter.GetComponentsInChildren <SkillParticle> ();

        foreach (var particle in particles)
        {
            ExportSkillParticle(particle, skillParticles);
        }

        particleEmitter.emitterType      = emitter.emitterType;
        particleEmitter.StartTime        = emitter.startFrame;
        particleEmitter.Duration         = emitter.duration;
        particleEmitter.EmitterShape     = ExportSkillShape(emitter.EmitterShape);
        particleEmitter.EmitterPosition  = MathUtil.ToVector3f(emitter.EmitterPosition);
        particleEmitter.ParticleTemplate = skillParticles.Count > 0?skillParticles [0]:null;
        particleEmitter.Particles        = skillParticles;

        emitters.Add(particleEmitter);
        return(particleEmitter);
    }