コード例 #1
0
    public override async void BeginExecute()
    {
        base.BeginExecute();

        var taskData = new CreateEffectTaskData();

        taskData.Position     = GetParent <CombatEntity>().Position;
        taskData.Direction    = InputDirection;
        taskData.LifeTime     = 2000;
        taskData.EffectPrefab = GetAbilityEntity <Skill1004Entity>().SkillConfigObject.SkillEffectObject;
        var task = EntityFactory.CreateWithParent <CreateEffectTask>(this, taskData);

        task.ExecuteTaskAsync().Coroutine();

        await TimerComponent.Instance.WaitAsync(1000);

        var taskData2 = new CreateTriggerTaskData();

        taskData2.Position      = GetParent <CombatEntity>().Position;
        taskData2.Direction     = InputDirection;
        taskData2.LifeTime      = 200;
        taskData2.TriggerPrefab = GetAbilityEntity <Skill1004Entity>().SkillConfigObject.AreaCollider;
        var task2 = EntityFactory.CreateWithParent <CreateTriggerTask>(this, taskData2);

        task2.OnTriggerEnterCallbackAction = (other) => {
            AbilityEntity.ApplyAbilityEffect(other.GetComponent <Monster>().CombatEntity);
        };
        await task2.ExecuteTaskAsync();

        EndExecute();
    }
コード例 #2
0
ファイル: Skill_1004.cs プロジェクト: xiaopan1991/EGamePlay
    public override async void BeginExecute()
    {
        base.BeginExecute();

        Hero.Instance.StopMove();
        Hero.Instance.PlayThenIdleAsync(Hero.Instance.AnimationComponent.SkillAnimation).Coroutine();
        Hero.Instance.SkillPlaying = true;
        Hero.Instance.transform.GetChild(0).eulerAngles = new Vector3(0, InputDirection, 0);

        var taskData = new CreateEffectTaskData();

        taskData.Position     = GetParent <CombatEntity>().Position;
        taskData.Direction    = InputDirection;
        taskData.LifeTime     = 2000;
        taskData.EffectPrefab = GetAbility <Skill1004Ability>().SkillConfigObject.SkillEffectObject;
        var task = EntityFactory.CreateWithParent <CreateEffectTask>(this, taskData);

        task.ExecuteTaskAsync().Coroutine();

        await TimerComponent.Instance.WaitAsync(1500);

        var taskData2 = new CreateTriggerTaskData();

        taskData2.Position               = GetParent <CombatEntity>().Position;
        taskData2.Direction              = InputDirection;
        taskData2.LifeTime               = 200;
        taskData2.TriggerPrefab          = GetAbility <Skill1004Ability>().SkillConfigObject.AreaCollider;
        taskData2.OnTriggerEnterCallback = (other) => {
            AbilityEntity.ApplyAbilityEffectsTo(other.GetComponent <Monster>().CombatEntity);
        };
        var task2 = EntityFactory.CreateWithParent <CreateTriggerTask>(this, taskData2);
        await task2.ExecuteTaskAsync();

        EndExecute();
        Hero.Instance.SkillPlaying = false;
    }