- Home /
networkView not called on Child objects?
When following the GTGD Multiplayer Game tutorial on Youtube (https://www.youtube.com/watch?v=J4j4vlso4yc&list=PLC90282759FD90F77) I have encountered an issue. When 2 players are connected to the server, the RPC call to update their Position/Rotation on the network seems to work once when they are spawned, then doesn't ever update as they move.
I suspect the problem is that I have PlayerRed/PlayerBlue objects, then player model prefabs are assigned to these as children. Since my NetworkView and MovementUpdate script (included below) are assigned to PlayerRed/PlayerBlue, would this be the reason the positions of the player models don't update?
 using UnityEngine;
 using System.Collections;
 
 public class MovementUpdate : MonoBehaviour
 {
     private Vector3 lastPosition;
     private Quaternion lastRotation;
     private Transform myTransform;
 
     // Use this for initialization
     void Start ()
     {
         if (networkView.isMine == true)
         {
             myTransform = transform;
 
             // Update player position across network for everyone else
             // as soon as they are spawned into the game
             networkView.RPC("UpdateMovement", RPCMode.OthersBuffered, myTransform.position, myTransform.rotation);
         }
         else
         {
             enabled = false;
         }
     }
     
     // Update is called once per frame
     void Update ()
     {
         // If player has moved, use RPC to update position/rotation across network
         if (Vector3.Distance(myTransform.position, lastPosition) >= 0.1)
         {
             // Update the player's new position before RPC is called
             lastPosition = myTransform.position;
 
             networkView.RPC("UpdateMovement", RPCMode.OthersBuffered, myTransform.position, myTransform.rotation);
         }
 
         if (Quaternion.Angle(myTransform.rotation, lastRotation) >= 1)
         {
             // Update the player's new position before RPC is called
             lastRotation = myTransform.rotation;
             
             networkView.RPC("UpdateMovement", RPCMode.OthersBuffered, myTransform.position, myTransform.rotation);
         }
     }
 
     [RPC]
     void UpdateMovement(Vector3 newPosition, Quaternion newRotation)
     {
         print ("UpdateMovement RPC called");
         transform.position = newPosition;
         transform.rotation = newRotation;
     }
 }
Your answer
 
 
             Follow this Question
Related Questions
How can I send a mouse click to a server using an RPC? 0 Answers
Is server the sender of RPC? 0 Answers
What is the best way to properly implement shooting over a network? 1 Answer
Unity networking tutorial? 6 Answers
Multiplayer Level Loading 1 Answer
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                