1
\$\begingroup\$

As title says I need to make the player disappear when he gets in car. Right now, it works as a single-player, but since I am new to unet I don't really know how to achieve this, I tried some ways, but they didn't work. Here is script:

 [Client]
 void OnControllerColliderHit(ControllerColliderHit hit)
 {
     //so if we hit car
     if(hit.collider.tag == "Vehicle")
     {
         //if we pressed "E"
         if (Input.GetKeyDown(KeyCode.E))
         {
             //call method to disable some stuff taht should be disabled, like: controller, shoot, weapons etc.
             if (isServer)
                 CmdCall(inVehicle, hit);
             else
                 RpcCall(inVehicle, hit);
         }
     }
 }
 [Command]
 void CmdCall(bool invehicle, ControllerColliderHit hit){

     RpcCall(inVehicle, hit);
     }
 [ClientRpc]
 void RpcCall(bool invehicle, ControllerColliderHit hit)
 {

     disable(inVehicle, hit);
 }

I can't see any errors in console but I cant enter play mode cause there are some compiler errors, which again i cant see in console. thank you for any tip, comment, downvote, upvote, or hint :)

--Nick.

\$\endgroup\$
1
\$\begingroup\$

In your code you call the Command if you are the server, and call the RpcCall if you are not the server. It works the other way around:

  • Commands are issued from the client to the server.
  • RpcCalls are called from the server to all clients.

So if you are the server, you should call the RpcCall. And if you are the client, you should send a command to the server, requesting the RpcCall.

Just change:

if (isServer)

To:

if (!isServer)

As you are currently using them the other way around.

I'd suggest also suggest, if possible, implement the RpcCall and Command in the ControllerColliderHit class, so you don't have to pass the component as a parameter, which might increase the size of the messages between clients and the server. Also the code would be clearer to read IMO.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.