/// <summary> /// インターフェースにより実装したダメージ処理、ハンマークラスから呼ばれる /// </summary> public void Damage(PlayerManager player) { if (damageTimer <= 0f && !player.isDamageable) { animator.SetTrigger(anm_Damage); damageTimer = damageCT; EffectManager.Create(0, transform.position, 3f); } }
public override void ShowEffect() { //todo 创建子弹 GameObject go = EffectManager.Create("Fist", false); go.transform.position = Owner.transform.position; go.transform.forward = Owner.transform.forward; Bullet bullet = go.AddUniqueComponent <Bullet>(); bullet.Skill = this; bullet.LayerMask = mCollisionMask ^ (1 << Owner.gameObject.layer); bullet.EnterScene(); }
public virtual void OnHurt(Skill skill) { Attr.Hp -= skill.Owner.Attr.Atk * 1000 / Attr.Defence + 100; //Debug.Log(Attr.Hp); EffectManager.Create("Z_Hit01", true, HurtPoint); if (Attr.Hp <= 0) { Dying(); } else { HpBarVisable = true;//显示血条 } }
public virtual void Dying() { IsDead = true; Controller.enabled = false; Agent.enabled = false; AttackTarget = null; FollowTarget = null; SetTrigger("die"); HpBarVisable = false; //隐藏血条 ClearItem(); //背包掉落 //滴血 CTimeSys.Instance.AddTimer(500, 0, () => { GameObject go = EffectManager.Create("blood_down", true); go.transform.position = transform.position; go.transform.forward = transform.forward; }); //血泊 CTimeSys.Instance.AddTimer(850, 0, () => { GameObject go = EffectManager.Create("dimian_canliu", false); go.transform.position = transform.position;// + transform.forward * 0.5f; go.transform.rotation = Quaternion.AngleAxis(Random.Range(0, 360), Vector3.up); Renderer blood = go.GetComponentInChildren <Renderer>(); blood.material.SetFloat("_N", Random.Range(1, 10)); }); //3秒后开始下沉 CTimeSys.Instance.AddTimer(3000, 0, () => { mIsDown = true; //下沉3秒后离场 mTimeId = CTimeSys.Instance.AddTimer(3000, 0, LeaveScene); }); }