- Home /
GetComponent Problems with Networked FPS System
Hi,
I'm trying to use the inbuilt Unity network tools to build a simple client / server virtual world system. Each client is to have its own independent first-person character. To allow independent control of each client character I therefore need to disable scripts such as MouseLook, CharacterMotor and FPSInputController on characters owned by all other clients.
The client player character in my scene isn't present on start-up, (spawning after a user connects to the network). This functions by creating a new instance of a player prefab containing the character mesh, animations and the related FPS scripts and camera.
After looking at a number of examples I've been trying to use a simple script added to my player prefab to disable the FPS control scripts on characters not owned by a client;
function Start() {
if (!networkView.isMine) {
GetComponent("FPSInputController").enabled = false;
GetComponent("MouseLook").enabled = false;
GetComponent("CharacterMotor").enabled = false;
}
}
For some reason I get a 'NullReferenceException: Object reference not set to an instance of an object' error message for each of the GetComponent methods, but surely these should be found as the script is installed on the same object in the same prefab.
I've checked a bunch of different solutions but everything I've seen seems to indicate that as the script is attached to the same prefab GameObject as the scripts I'm trying to call the code above should work. For example, http://answers.unity3d.com/questions/128101/instantiate-2-players-on-network-problem.html
I've also tried the alternative solution suggested at http://answers.unity3d.com/questions/19172/camera-and-control-problems-with-network.html but this method didn't seem to do anything in my project. I'm using another script and !networkView.isMine to destroy unwanted cameras and everything works fine so I know there isn't a problem with my network setup.
Any assistance in figuring out why the code above isn't turning off the scripts in my FPS player prefab when a new instance is created would be welcome.
Regards,
Midavi.
Your answer
Follow this Question
Related Questions
mouse look not looking up and down when I add unet network manager 0 Answers
Unity networking tutorial? 6 Answers
First Person Networking 0 Answers
MouseLook FPS Sensitivty (DropDown) 0 Answers
Changing a variable in another script over the network 1 Answer