0

我正在使用 Unity3D,但我遇到了问题。我有一个脚本,一旦你连接到服务器,它就会实例化玩家游戏对象。我也有一个攻击脚本。当只有 1 名玩家时,一切正常。当第二个玩家上场时,攻击不起作用!我做了Debug.Log,我发现当你点击其他玩家攻击而不是攻击他时,你正在攻击它下面的地形。这是我的代码。实例化代码:

GameObject myPlayer = PhotonNetwork.Instantiate (character, mySpawn.transform.position, mySpawn.transform.rotation, 0) as GameObject;

攻击代码:

using UnityEngine;
using System.Collections;

public class SendAttackInfo : Photon.MonoBehaviour
{
    public float damage = 100;
    // Use this for initialization
    void Start()
    {

    }



    void Update()
    {

        bool RMB = Input.GetMouseButtonDown(0);
        if (RMB)
        {

            RaycastHit hit;
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            if (Physics.Raycast(ray, out hit, 100))
            {
                Debug.Log("We arm-hit: " + hit.collider.name);

                hit.collider.transform.gameObject.GetComponent<PhotonView>().RPC("ApplyDamage", PhotonTargets.AllBuffered, damage);
                hit.collider.transform.FindChild("Cube").GetComponent<PhotonView>().RPC("ApplyDamage", PhotonTargets.AllBuffered, damage);
            }
        }
    }
}

请帮忙!

4

0 回答 0