- Home /
Controlling the wrong client with Photon Cloud
I'm trying to learn how to use the Photon Cloud service, and am running into a problem with controls.
I have a scene with the default photon cloud asset bundle and the standard first person controller. I've moved the controller into the 'resources' folder, and all related .js scripts into a 'Plugins' folder. I've created a C# script that's basically a modification of their Photon's 'marcopolo' tutorial. For some reason, when I have two clients open, mouse look works in the y direction in the active client, and moves the non-active client in the x direction. Using movement keys moves the other client, but not the one I'm active in. Any ideas what's going on here?
void OnJoinedRoom(){
GameObject Avatar = PhotonNetwork.Instantiate ("My Photon First Person Controller", Vector3.zero, Quaternion.identity, 0);
MouseLook mouselook = Avatar.GetComponent<MouseLook>();
mouselook.enabled = true;
FPSInputController controller = Avatar.GetComponent<FPSInputController>();
controller.enabled = true;
CharacterMotor charactermotor = Avatar.GetComponent<CharacterMotor>();
charactermotor.enabled = true;
PhotonView myAvatarPv = Avatar.GetComponent<PhotonView>();
}
Answer by Life Alchemist · Jun 10, 2013 at 02:36 AM
I had the issue with the tutorial. It's the camera. It doesn't make sense but you have to turn the player's camera off by default, and turn it on through code. Here's what I used since I simply added a camera (gameobject) as a child of the monster object since the mesh motor had a camera required.
Transform playerCam = monster.transform.Find ("Camera");
playerCam.active = true;
But the above person may be right for your case since I've just gotten to the part about isMine and I'm trying to find out what that does exactly.
Answer by RufusHolton · Apr 30, 2020 at 02:45 PM
i had this problem too and what i did was:
public GameObject cam;
private void Awake()
{
if (GetComponent<PhotonView>().IsMine)
{
cam.SetActive(true);
}
else
{
print("Incorrect PhotonView");
}
}
Answer by m5k · Sep 06, 2012 at 08:56 PM
you need to use:
if (photonView.isMine) {
//Controls here
}
This will only enable content (in this case your control system) for your own entity.
That is what i have, but A client controls the B player and B client controls the A player...
void FixedUpdate() {
if (photonView.Is$$anonymous$$ine) {
$$anonymous$$eyboardControl();
$$anonymous$$ouseControl();
} else {
return;
}
}
Your answer
Follow this Question
Related Questions
Synchronize array with simultaneous access via Photon Network RPC 1 Answer
Photon Unity Networking - Player Camera Instantiate 0 Answers
Accessing a Parent's PhotonID from a child's script 0 Answers
Photon Cloud, Multiplayer Damage script 0 Answers
Photon Networking (Viking Demo) - GetRoomList() func not working 2 Answers