- Home /
Trouble disabling and enabling components on charactercontroller
Right now i'm trying to get unity working with the photon multiplayer asset, and I think the tutorial i'm following makes it work by disabling certain elements of the characterController on startup, and enabling them on spawn so it only works for your individual characterController. I'm using a characterController my friend has altered, and i'm having trouble with disabling/enabling elements of it. This is what it looks like in the hierarchy, this is what i'm trying to disable and re-enable.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class greenchickenstartserver : MonoBehaviour {
public Camera SpawnCamera;
void Start () {
PhotonNetwork.ConnectUsingSettings("v4.2");
}
// Update is called once per frame
void OnGUI()
{
GUILayout.Label(PhotonNetwork.connectionStateDetailed.ToString());
}
private void OnConnectedToMaster()
{
PhotonNetwork.JoinLobby();
}
void OnJoinedLobby()
{
Debug.Log("OnJoinedLobby");
PhotonNetwork.JoinRandomRoom();
}
void OnPhotonRandomJoinFailed()
{
Debug.Log("OnPhotonRandomJoinFailed");
PhotonNetwork.CreateRoom(null);
}
void OnJoinedRoom()
{
Debug.Log("OnJoinedLobby");
SpawnMyPlayer();
}
public Camera camera;
void SpawnMyPlayer()
{
///PhotonNetwork.Instantiate("newcharactercontroller", new Vector3(22, 14, -47),Quaternion.identity, 0);
GameObject myPlayerGO = (GameObject)PhotonNetwork.Instantiate("newcharactercontroller", new Vector3(22, 14, -47), Quaternion.identity, 0);
SpawnCamera.enabled = false;
((MonoBehaviour)myPlayerGO.GetComponent("First Person Controller")).enabled = true;
((MonoBehaviour)myPlayerGO.GetComponent("Camera")).enabled = true;
myPlayerGO.transform.Find("FirstPersonCharacter").gameObject.SetActive(true);
}
}
Answer by TexelBox · Jul 22, 2017 at 12:46 AM
Is it just the FirstPersonController script that is failing to be enabled? Be careful using strings with GetComponent()
since script names in the inspector show spaces between "words" whereas the actual script name cannot contain spaces. Try removing spaces and writing GetComponent("FirstPersonController")
or alternatively you can use the generic GetComponent<FirstPersonController>()
which helps to avoid errors.