- 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