- Home /
 
              This post has been wikified, any user with enough reputation can edit it. 
            
 
            isLocalPlayer is ReadOnly I can not set an object as a local player?(NetworkManager)
I was splitting two teams over network red ,and blue teams but when setting the player prefab in the inspector of the network manager I choose wether auto create the player prefab by round robin or random so when it is spawned it is spawned automatically ,so I went to check if the player that i have spawned isLocalPlayer to move it use it but it keeps on false ,any help would be appreciated.
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Networking;
public class PlayerController : NetworkBehaviour {
 public GameObject bulletPrefab;
 public Transform bulletSpawn;
 void Start(){
     if (!isLocalPlayer)
         Debug.Log ("This is not local Player");
     else
         Debug.Log ("This is the local Player");
 }
 // Update is called once per frame
 void Update () {
     if (!isLocalPlayer) {
         return;
     } else if (isLocalPlayer) {
         /*Remember that it is not auto created SO IT IS NOT LOCAL PLAYER (SEARCH)IMPORTANT 
         how to set an object as a local player*/
         float x = Input.GetAxis ("Horizontal") * Time.deltaTime * 150.0f;
         float z = Input.GetAxis ("Vertical") * Time.deltaTime * 3.0f;
         transform.Rotate (0, x, 0);
         transform.Translate (0, 0, z);
         if (Input.GetButton("Fire1")) {
             CmdFire ();
         }
     }
 }
 [Command]
 void CmdFire(){
     //Instantiate bullet from prefab
     GameObject bullet = (GameObject)Instantiate (bulletPrefab, bulletSpawn.position, bulletSpawn.rotation);
     //Add velocity to the bullet
     bullet.GetComponent<Rigidbody>().velocity = bullet.transform.forward * 20.0f;
     //Spawn the bullet on the clients
     NetworkServer.Spawn(bullet);
     //Destroy the bullet after 2 seconds
     Destroy(bullet,2);
 }
 
               } //this is the Player Spawner Script
     using System.Collections;
     using System.Collections.Generic;
     using UnityEngine;
     using UnityEngine.Networking;
     
     public class WorldScript : NetworkBehaviour {
     
         public Transform[] RedSpawnPoints;
         public Transform[] BlueSpawnPoints;
     
         public GameObject playerPrefab;
     
         public override void OnStartServer(){
             
             Vector3 spawnPosition = Vector3.zero;
             if (playerPrefab.tag == "Red Team") {
                 spawnPosition = RedSpawnPoints [Random.Range (0, RedSpawnPoints.Length)].transform.position;
                 Debug.Log ("You are in the Red Team");
             } else if (playerPrefab.tag == "Blue Team") {
                 spawnPosition = BlueSpawnPoints [Random.Range (0, BlueSpawnPoints.Length)].transform.position;
                 Debug.Log ("You are in the Blue Team");
             } else
                 return;
             Quaternion spawnRotation = Quaternion.Euler (0.0f, Random.Range (0.0f, 360.0f), 0.0f);
     
             GameObject player = (GameObject)Instantiate (playerPrefab, spawnPosition, spawnRotation);
             NetworkServer.Spawn (player);
         }
     }
 
              
               Comment
              
 
               
              Your answer