我正在使用 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);
}
}
}
}
请帮忙!