Here is my script attached to my player and it contains all the stuff to allow my players to move. I have my networkmanager sciript which allows them to join the game. But for some reason the game is messed up and on one players screen, you can move but it only shows up on the other players screen and vice versa. Please help! Thanks
using UnityEngine;
using System.Collections;
[RequireComponent (typeof(CharacterController))]
public class FirstPersonController : Photon.MonoBehaviour {
Vector3 realPosition = Vector3.zero;
Quaternion realRotation = Quaternion.identity;
public float movementSpeed = 5.0f;
public float mouseSensitivity = 5.0f;
public float UpDownRange = 60.0f;
float verticalRotation = 0f;
float verticalVelocity = 0;
public float jumpSpeed = 5.0f;
void Update () {
if( photonView.isMine ) {
Movement();
}
else {
transform.position = Vector3.Lerp(transform.position, realPosition, 0.1f);
transform.rotation = Quaternion.Lerp(transform.rotation, realRotation, 0.1f);
}
}
public void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info) {
if(stream.isWriting) {
stream.SendNext(transform.position);
stream.SendNext(transform.rotation);
}
else {
realPosition = (Vector3)stream.ReceiveNext();
realRotation = (Quaternion)stream.ReceiveNext();
}
}
void Movement(){
if (Input.GetKeyDown (KeyCode.P))
{
Screen.lockCursor = true;
}
CharacterController cc = GetComponent<CharacterController>();
float rotLeftRight = Input.GetAxis ("Mouse X") * mouseSensitivity;
transform.Rotate (0, rotLeftRight, 0);
verticalRotation -= Input.GetAxis ("Mouse Y") * mouseSensitivity;
verticalRotation = Mathf.Clamp (verticalRotation, -UpDownRange, UpDownRange);
Camera.main.transform.localRotation = Quaternion.Euler (verticalRotation, 0, 0);
float forwardSpeed = Input.GetAxis ("Vertical") * movementSpeed;
float sideSpeed = Input.GetAxis ("Horizontal") * movementSpeed;
verticalVelocity += Physics.gravity.y * Time.deltaTime;
if (Input.GetButtonDown("Jump") && cc.isGrounded)
{
verticalVelocity = jumpSpeed;
}
Vector3 speed = new Vector3 (sideSpeed, verticalVelocity, forwardSpeed);
speed = transform.rotation * speed;
cc.Move (speed * Time.deltaTime);
}
}