/// <summary> /// 玩家受傷方法:扣血、更新血條、顯示傷害值 /// </summary> /// <param name="damage">玩家受多少傷害</param> public void Hit(float damage) { data.hp -= damage; // 血量 扣除 傷害值 data.hp = Mathf.Clamp(data.hp, 0, 10000); // 血量 夾在 0 - 10000 hpControl.UpdateHpBar(data.hpMax, data.hp); // 血量控制系統.更新血條(目前血量,最大血量) if (data.hp == 0) { Dead(); // 如果 血量 為 0 呼叫死亡方法 } StartCoroutine(hpControl.ShowDamage(damage)); // 血量控制器.顯示傷害值 }
private void Start() { // 先取得元件 ani = GetComponent <Animator>(); agent = GetComponent <NavMeshAgent>(); agent.speed = data.speed; hp = data.hpMax; player = GameObject.Find("玩家").transform; agent.SetDestination(player.position); hpControl = transform.Find("血條系統").GetComponent <HpBarControl>(); hpControl.UpdateHpBar(data.hpMax, hp); }
public List <float> enemysDistance; // 怪物距離 #region 事件 private void Start() { rig = GetComponent <Rigidbody>(); // 剛體欄位 = 取得元件<泛型>() ani = GetComponent <Animator>(); // target = GameObject.Find("目標").GetComponent<Transform>(); // 寫法 1 target = GameObject.Find("目標").transform; // 寫法 2 joy = GameObject.Find("虛擬搖桿").GetComponent <Joystick>(); levelManager = FindObjectOfType <LevelManager>(); // 透過類型尋找物件 hpControl = transform.Find("血條系統").GetComponent <HpBarControl>(); // 變形.尋找("子物件") firePoint = transform.Find("發射位置"); hpControl.UpdateHpBar(data.hpMax, data.hp); }