【UNET自學日誌】Part9 造成傷害

上一部分我們做的是射擊的部分,說到射擊,肯定和傷害有關,當Player1擊中Player2的時候,將會造成Player2生命值的減少

本部分也較爲容易,我們需要一個新的腳本Player_Health,另外,我們需要對上一次做的Player_Shoot腳本留下的東西做完

using UnityEngine;
using System.Collections;
using UnityEngine.Networking;
using UnityEngine.UI;

public class Player_Health : NetworkBehaviour {

    [SyncVar(hook="OnHealthChanged")]private int health = 100;
    private Text healthText;

    void Start ()
    {
        healthText = GameObject.Find("Health Text").GetComponent<Text>();
        SetHealthText();
    }
	

    void SetHealthText()
    {
        if (isLocalPlayer)
        {
            healthText.text = "Health " + health.ToString();
        }
    }

    public void DeductHealth(int dmg)
    {
        health -= dmg;
    }

    void OnHealthChanged(int hlth)
    {
        health = hlth;
        SetHealthText();
    }
}


using UnityEngine;
using System.Collections;
using UnityEngine.Networking;

public class Player_Shoot : NetworkBehaviour {

    private int damage = 25;
    private float range = 200;
    [SerializeField]private Transform camTransform;
    private RaycastHit hit;

	
    void Update () 
    {
        CheckIfShooting();
    }

    void CheckIfShooting()
    {
        if (!isLocalPlayer)
        {
            return;
        }

        if (Input.GetKeyDown(KeyCode.Mouse0))
        {
            Shoot();
        }
    }

    void Shoot()
    {
        if (Physics.Raycast(camTransform.TransformPoint(0, 0, 0.5f), camTransform.forward, out hit, range))
        {
            //Debug.Log(hit.transform.tag);

            if (hit.transform.tag == "Player")
            {
                string uIdentity = hit.transform.name;

                CmdTellServerWhoWasShot(uIdentity, damage);
            }
        }
    }

    [Command]
    void CmdTellServerWhoWasShot(string uniqueID, int dmg)
    {
        GameObject go = GameObject.Find(uniqueID);
        go.GetComponent<Player_Health>().DeductHealth(dmg);
    }
}
當Player1擊中Player2的時候,告訴服務器它擊中的是哪一個Player,然後調用Player_Health腳本中的DeductHealth函數,Player2的生命值減少



發佈了43 篇原創文章 · 獲贊 17 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章