} // 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
} // 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
} // end Update public void Recycling() { damage = null; foreach (TrailRenderer trail in GetComponentsInChildren<TrailRenderer>()) { trail.Clear(); } // end foreach InstanceMgr.GetObjectManager().Recycling(poolName, gameObject); } // end Recycling
} // 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
} // 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
//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
} // 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
} // 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
} // 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
} // end SetFillAmount public void Recycling() { InstanceMgr.GetObjectManager().Recycling(poolName, gameObject); } // end Recycling