Help with PUN PhotonNetworkView stuff.

Trying to make an fps. Now I have the player working. Can spawn in, be seen on other computer’s game clients. But the FPS Arms and weapon, and bullets are not showing up for other players. Each user’s FPS arms, weapon, and bullets show on their own screen but no one else’s. How do I fix this? The player is made up of a FirstPersonController (Unity’s free prefab) This is the parent. And has a PhotonView Script, and a NetworkCharacter script which I will post below. Then a MainCamera gameobject which has 2 child gameobjects. BerettaFPSArms, and M16FPSArms. They each have several children gameobjects.

What I need to know is why the BerettaFPSArms, and the M16FPSArms are not showing up on other players screens. Since they are children of the player. And the player has a PhotonView Script attached. Do they need a PhotonView aswell? Each individual child? or just the weaponArms objects?

using UnityEngine;
using System.Collections;

public class NetworkCharacter : Photon.MonoBehaviour {

	Vector3 realPosition =;
	Quaternion realRotation = Quaternion.identity;

	// Use this for initialization
	void Start () {
	// Update is called once per frame
	void Update () {
		if( photonView.isMine ) {
			// Do nothing -- the character motor/input/etc... is moving us
		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) {
			// This is OUR player. We need to send our actual position to the network.

		else {
			// This is someone else's player. We need to receive their position (as of a few
			// millisecond ago, and update our version of that player.

			realPosition = (Vector3)stream.ReceiveNext();
			realRotation = (Quaternion)stream.ReceiveNext();


void Shot(){