【UNET自學日誌】Part8 射擊

也是蠻簡單的一部分,直接上代碼

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

public class Player_Shoot : NetworkBehaviour {

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

	// Use this for initialization
	void Start () {
	
	}
	
	// Update is called once per frame
	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, float dmg)
    {
        GameObject go = GameObject.Find(uniqueID);
        //Apply damage to that player.
    }
}

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