Пример #1
0
    public void Process(EntityParent entity, params object[] args)
    {
        deadFx = entity.Transform.GetComponent <_2dxFX_DesintegrationFX>();
        if (deadFx != null)
        {
            deadFx.ForceMaterial = entity.Transform.GetComponent <MeshRenderer>().material;
            deadFx.enabled       = true;
        }
        entity.animator.CrossFade("Dead", 0.0f);
        entity.bIsDead             = true;
        entity.entityActor.moveDir = Vector3.zero;
        entity.LeaveLevel();
        DataEntityList data = DataEntityList.dataMap[entity.type];
        AudioType      type = AudioType.纹身男死亡;

        switch (data.Name)
        {
        case "纹身男":
            type = AudioType.纹身男死亡;
            break;

        case "胖子男":
            type = AudioType.胖子男死亡;
            break;
        }
        //播放死亡音效
        AudioManagerBase.Instance.LogicPlaySoundByClip(entity.audioSource, ResourcePoolManager.singleton.GetAudioClip(type));
    }
 public void Process(EntityParent entity, params object[] args)
 {
     if (entity is EntityMyself && SkillManager.singleton.HasSkillRunning())
     {
         
     }
     else
     {
         entity.PlayAnimation("OnHit");
     }       
     oldMove = entity.entityActor.moveDir;
     entity.entityActor.moveDir = Vector3.zero;
     //受击特效
     Skill skill = args[0] as Skill;
     if (skill != null || (skill == null && entity is EntityMyself))
     {
         string path = string.Empty;
         if (skill == null)
         {
             path = "Assets.Prefabs.Effects.Hit.HitBai.prefab";
         }
         else
         {
             switch (skill.hitType)
             {
                 case OnHitEffectType.白色:
                     path = "Assets.Prefabs.Effects.Hit.HitBai.prefab";
                     break;
                 case OnHitEffectType.橙色:
                     path = "Assets.Prefabs.Effects.Hit.HitCheng.prefab";
                     break;
                 case OnHitEffectType.紫色:
                     path = "Assets.Prefabs.Effects.Hit.HitZi.prefab";
                     break;
                 case OnHitEffectType.红色:
                     path = "Assets.Prefabs.Effects.Hit.HitHong.prefab";
                     break;
             }
         }
         WWWResourceManager.Instance.Load(path, (asset) => 
         {
             if (asset != null)
             {
                 theHitEffect = asset.Instantiate();
                 this.theHitEffect.transform.SetParent(entity.bindNodeTable[CommonDefineBase.BindCenter] as Transform);
                 theHitEffect.transform.localPosition = Vector3.zero;
                 DataEntityList data = DataEntityList.dataMap[entity.type];
                 AudioType type = AudioType.纹身男死亡;
                 switch (data.Name)
                 {
                     case "纹身男":
                         type = AudioType.纹身男死亡;
                         break;
                     case "胖子男":
                         type = AudioType.胖子男死亡;
                         break;
                 }
                 //播放音效
                 AudioManagerBase.Instance.LogicPlaySoundByClip(entity.audioSource, ResourcePoolManager.singleton.GetAudioClip(type));
             }
         });
         if (entity is EntityMonster)
         {
             entity.timer.Add(TimerManager.AddTimer(500, 0, () =>
             {
                 entity.Move();
             }));
         }
         else
         {
             entity.Idle();
         }
     }
 }
    public override void CreateEntity(Action action)
    {
        DataEntityList data = DataEntityList.dataMap[this.type];

        if (ResourcePoolManager.singleton.dicEffectPool.ContainsKey(data.ModelFile))
        {
            Transform  prefab     = ResourcePoolManager.singleton.dicEffectPool[data.ModelFile];
            GameObject gameobject = PoolManager.Pools[PoolManager.EffectPoolName].Spawn(prefab).gameObject;
            gameobject.tag = "Player";
            GameObject.DontDestroyOnLoad(gameobject);
            if (fsmMotion == null)
            {
                fsmMotion = new FSMMotion();
            }
            animator        = gameobject.GetComponent <Animator>();
            this.collider2d = gameobject.GetComponent <Collider2D>();
            audioSource     = gameobject.GetComponent <AudioSource>();
            if (null == audioSource)
            {
                audioSource = gameobject.AddComponent <AudioSource>();
            }
            audioSource.rolloffMode = AudioRolloffMode.Custom;
            GameObject                 = gameobject;
            Transform                  = gameobject.transform;
            Renderer                   = gameobject.GetComponentInChildren <Renderer>();
            entityActor                = gameobject.GetComponent <EntityActor>();
            entityActor.entity         = this;
            entityActor.Id             = this.EntityId;
            Transform.gameObject.layer = LayerMask.NameToLayer("Enemy");
            GatherRenderNodeInfo(GameObject);
            this.collider2d.enabled  = true;
            this.entityActor.enabled = true;
            bIsDead = false;
            this.SetVisiable(false);
            if (action != null)
            {
                action();
            }
        }
        else
        {
            WWWResourceManager.Instance.Load(data.ModelFile, (assetRequest) =>
            {
                Transform assetTra    = (assetRequest.mainObject as GameObject).transform;
                GameObject gameobject = PoolManager.Pools[PoolManager.EffectPoolName].Spawn(assetTra).gameObject;
                ResourcePoolManager.singleton.dicEffectPool.Add(data.ModelFile, assetTra);
                gameobject.tag = "Player";
                GameObject.DontDestroyOnLoad(gameobject);
                if (fsmMotion == null)
                {
                    fsmMotion = new FSMMotion();
                }
                animator        = gameobject.GetComponent <Animator>();
                this.collider2d = gameobject.GetComponent <Collider2D>();
                audioSource     = gameobject.GetComponent <AudioSource>();
                if (null == audioSource)
                {
                    audioSource = gameobject.AddComponent <AudioSource>();
                }
                audioSource.rolloffMode = AudioRolloffMode.Custom;
                GameObject                 = gameobject;
                Transform                  = gameobject.transform;
                Renderer                   = gameobject.GetComponentInChildren <Renderer>();
                entityActor                = gameobject.GetComponent <EntityActor>();
                entityActor.entity         = this;
                entityActor.Id             = this.EntityId;
                Transform.gameObject.layer = LayerMask.NameToLayer("Enemy");
                GatherRenderNodeInfo(GameObject);
                this.SetVisiable(false);
                if (action != null)
                {
                    action();
                }
            });
        }
    }