コード例 #1
0
ファイル: ArcherAttack1.cs プロジェクト: HelloWindows/Solider
                } // end DoBeforeEntering

                public void Reason()
                {
                    if (false == mainCharacter.avatar.isPlaying)
                    {
                        if (isCarom)
                        {
                            mainCharacter.fsm.PerformTransition(caromState);
                        }
                        else
                        {
                            mainCharacter.fsm.PerformTransition("wait");
                        } // end if
                        return;
                    }     // end if
                    if (isFinish)
                    {
                        return;
                    }
                    // end if
                    AnimationState state = mainCharacter.avatar.GetCurrentState(anim);

                    if (state.normalizedTime < 0.5f)
                    {
                        return;
                    }
                    // end if
                    isFinish = true;
                    DamageData damage = new DamageData(mainCharacter);
                    Arrow      arrow  = InstanceMgr.GetObjectManager().GetGameObject <Arrow>(Arrow.poolName);

                    arrow.transform.position = mainCharacter.position + Vector3.up * 0.8f;
                    arrow.transform.rotation = mainCharacter.rotation;
                    arrow.SetDamage(damage);
                    arrow.gameObject.SetActive(true);
                } // end Reason
コード例 #2
0
                } // end CheckAttributeData

                public override void UnderAttack(IDamageData damage) {
                    if (null == damage) return;
                    // end if
                    IRealData realData = new RealData(damage, m_charcterData);
                    m_charcterData.Minus(realData);
                    Vector2 screenPoint = SceneManager.mainCamera.camera.WorldToScreenPoint(character.helpTransform.position);
                    Vector2 hud_pos;
                    if (RectTransformUtility.ScreenPointToLocalPointInRectangle(SceneManager.mainCanvas.HUD_rectTRansform, screenPoint,
                        SceneManager.mainCanvas.camera, out hud_pos)) {
                        HUD_Damage hud = InstanceMgr.GetObjectManager().GetGameObject<HUD_Damage>(HUD_Damage.poolName);
                        hud.SetNumber(realData.HP);
                        hud.transform.SetParent(SceneManager.mainCanvas.HUD_rectTRansform, false);
                        hud.transform.localPosition = hud_pos;
                        hud.gameObject.SetActive(true);
                    } // end if
                    if (null != lockCharacter) return;
                    // end if
                    if (damage.hashID == SceneManager.mainCharacter.hashID) {
                        LockCharacter(SceneManager.mainCharacter);
                        return;
                    } // end if
                    ICharacter npc = SceneManager.characterManager.factory.GetNPCharacter(damage.hashID);
                    if (null != npc) {
                        LockCharacter(npc);
                    } // end if
                } // end UnderAttack
コード例 #3
0
            } // end Update

            public void Recycling() {
                damage = null;
                foreach (TrailRenderer trail in GetComponentsInChildren<TrailRenderer>()) {
                    trail.Clear();
                } // end foreach
                InstanceMgr.GetObjectManager().Recycling(poolName, gameObject);
            } // end Recycling
コード例 #4
0
                }     // end Reason

                public void Act()
                {
                    if (skillStep != SkillStep.Step2)
                    {
                        return;
                    }
                    // end if
                    AnimationState state = character.avatar.GetCurrentState("skill3_2");

                    if (null == state)
                    {
                        return;
                    }
                    // end if
                    int index = (int)state.normalizedTime;

                    if (index < 0 || index >= signArr.Length)
                    {
                        return;
                    }
                    // end if
                    if (true == signArr[index])
                    {
                        return;
                    }
                    // end if
                    signArr[index] = true;
                    DamageData damage = new DamageData(character);
                    Arrow      arrow  = InstanceMgr.GetObjectManager().GetGameObject <Arrow>(Arrow.poolName);

                    arrow.transform.position = character.position + Vector3.up * 0.8f;
                    arrow.transform.rotation = character.rotation;
                    arrow.SetDamage(damage);
                    arrow.gameObject.SetActive(true);
                } // end Act
コード例 #5
0
ファイル: ObjectTimer.cs プロジェクト: HelloWindows/Solider
            } // end ObjectTimer

            public bool IsOverTime(float deltaTime) {
                time -= deltaTime;
                if (time > 0) return false;
                // end if
                InstanceMgr.GetObjectManager().Recycling(name, Go);
                Go = null;
                return true;
            } // end IsOverTime
コード例 #6
0
            //public static void ShowEffectOnce(string name, Vector3 posistion) {
            //    ObjectTool.InstantiateGo(name, ResourcesTool.LoadPrefab(name), null, posistion, Vector3.zero, Vector3.one);
            //} // end ShowEffectOnce

            public static void ShowEffectFromPool(string name, float time, Vector3 posistion)
            {
                GameObject Go = InstanceMgr.GetObjectManager().GetGameObject(name, time);

                if (null == Go)
                {
                    return;
                }
                // end if
                Go.transform.position = posistion;
                Go.SetActive(true);
            } // end ShowEffectCache
コード例 #7
0
                } // end OnClickAttack

                private bool Flight() {
                    if (isFlight) return false;
                    // end if
                    isFlight = true;
                    mainCharacter.avatar.Play("attack2_2");
                    DamageData damage = new DamageData(mainCharacter);
                    Magic_0 arrow = InstanceMgr.GetObjectManager().GetGameObject<Magic_0>(Magic_0.poolName);
                    arrow.transform.position = mainCharacter.position + Vector3.up * 0.8f;
                    arrow.transform.rotation = mainCharacter.rotation;
                    arrow.SetDamage(damage);
                    arrow.gameObject.SetActive(true);
                    return true;
                } // end Flight
コード例 #8
0
                } // end UnderAttack

                public override void SwitchHpBar(bool isShow) {
                    if (isShow) {
                        if (null == hpBar) {
                            hpBar = InstanceMgr.GetObjectManager().GetGameObject<HP_Bar>(HP_Bar.poolName);
                            hpBar.transform.SetParent(character.helpTransform, false);
                            hpBar.gameObject.SetActive(true);
                        } // end if
                    } else {
                        if (null == hpBar) return;
                        // end if
                        hpBar.Recycling();
                        hpBar = null;
                    } // end if
                } // end SwitchHpBar
コード例 #9
0
                } // end DoBeforeEntering

                public void Reason() {
                    if (false == character.info.characterData.IsLive) {
                        character.fsm.PerformTransition(NPCStateID.Die);
                        return;
                    } // end if
                    if (false == character.avatar.isPlaying) {
                        if (null == character.info.lockCharacter) {
                            character.fsm.PerformTransition(NPCStateID.Idle);
                            return;
                        } //end if
                        if (Vector3.Distance(character.info.lockCharacter.position, character.position) < reach) {
                            character.fsm.PerformTransition(id);
                            return;
                        } // end if
                        character.fsm.PerformTransition(NPCStateID.Chase);
                        return;
                    } // end if
                    if (isFlight) return;
                    // end if
                    if (null == character.info.lockCharacter) {
                        character.fsm.PerformTransition(NPCStateID.Idle);
                        return;
                    } //end if
                    character.move.LookAt(character.info.lockCharacter.position);
                    AnimationState state = character.avatar.GetCurrentState(anim);
                    if (null == state || state.normalizedTime < 0.5f) return;
                    // end if
                    isFlight = true; 
                    if (Vector3.Distance(character.info.lockCharacter.position, character.position) > reach) return;
                    // end if
                    DamageData damage = new DamageData(character);
                    NPC_Arrow arrow = InstanceMgr.GetObjectManager().GetGameObject<NPC_Arrow>(effectPath);
                    arrow.transform.position = character.position + Vector3.up * 0.5f;
                    arrow.transform.rotation = character.rotation;
                    arrow.SetDamage(effectPath, damage);
                    arrow.gameObject.SetActive(true);
                } // end Reason
コード例 #10
0
            } // end SetFillAmount

            public void Recycling() {
                InstanceMgr.GetObjectManager().Recycling(poolName, gameObject);
            } // end Recycling