趣味でサッカーの試合をしようと思ったのですが、問題が発生しました
void OnTriggerStay(Collider other)
{
if (other.tag == "BallTAG")
RpcAddForceToBall(other.gameObject);
}
[ClientRpc]
public void RpcAddForceToBall(GameObject hit)
{
if (Input.GetButton("Drag"))
{
hit.GetComponent<Rigidbody>().AddForce((movement * 200) * Time.deltaTime);
}
if (Input.GetButtonDown("Shoot"))
hit.GetComponent<Rigidbody>().AddForce((new Vector3(movement.x, 0.60f, movement.z) * 2000 * PlayerCC.velocity.magnitude) * Time.deltaTime);
}
}
ホストはドラッグまたはシュートできますが、クライアントはボールに何かをすることはできません. しかし、もし私がそれを好きなら
void OnTriggerStay(Collider other)
{
hit.GetComponent<Rigidbody>().AddForce(10,10,10);
if (other.tag == "BallTAG")
RpcAddForceToBall(other.gameObject);
}
クライアントは強制的にボールを打つことができます
また、私もそうします
void OnTriggerStay(Collider other)
{
Debug.Log("Entered");
if (Input.GetButton("Drag"))
Debug.Log("Dragging");
}
クライアントで Entered を印刷できますが、ドラッグはホストではありません。両方を印刷できます。
それを修正するにはどうすればよいですか?