Esempio n. 1
0
 /// <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));   // 血量控制器.顯示傷害值
 }
Esempio n. 2
0
 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);
 }
Esempio n. 3
0
    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);
    }