I need to know how to find out the newest instantiated object. In the code below i need to know so in the HatEnable i only activate the object for the last object instantiated and not all of the objects on the server.
using UnityEngine;
using System.Collections.Generic;
public class NetworkManager : MonoBehaviour {
public GameObject standbyCamera;
SpawnSpot[] spawnSpots;
bool connecting = false;
public float respawnTimer = 0;
private int Hat = 0;
public GameObject HatCos;
void Start () {
spawnSpots = GameObject.FindObjectsOfType<SpawnSpot> ();
PhotonNetwork.player.name = PlayerPrefs.GetString ("Username", "Enter Name");
Hat = PlayerPrefs.GetInt ("Hat");
}
void OnDestroy(){
PlayerPrefs.SetString ("Username", PhotonNetwork.player.name);
}
void Connect() {
PhotonNetwork.ConnectUsingSettings ("MultiFPS v001");
}
void OnGUI( ) {
GUILayout.Label(PhotonNetwork.connectionStateDetailed.ToString() );
if (GUI.Button (new Rect (200, 0, 300, 30), "Respawn or press p DO NOT WHEN ALIVE")) {
SpawnMyPlayer ();
}
if (PhotonNetwork.connected == false && connecting == false) {
GUILayout.BeginArea (new Rect(0,0, Screen.width, Screen.height));
GUILayout.BeginHorizontal ();
GUILayout.FlexibleSpace ();
GUILayout.BeginVertical ();
GUILayout.FlexibleSpace ();
GUILayout.BeginHorizontal ();
GUILayout.Label ("Username: ");
PhotonNetwork.player.name = GUILayout.TextField (PhotonNetwork.player.name);
GUILayout.EndHorizontal ();
if (GUILayout.Button ("Single Player")) {
connecting = true;
PhotonNetwork.offlineMode = true;
OnJoinedLobby ();
}
if (GUILayout.Button ("Multi Player")) {
connecting = true;
Connect ();
}
GUILayout.FlexibleSpace ();
GUILayout.EndVertical ();
GUILayout.FlexibleSpace ();
GUILayout.EndHorizontal ();
GUILayout.EndArea ();
}
}
void OnJoinedLobby() {
Debug.Log ("OnJoinedLobby");
PhotonNetwork.JoinRandomRoom ();
}
void OnPhotonRandomJoinFailed(){
Debug.Log ("OnPhotonRandomJoinFailed");
PhotonNetwork.CreateRoom (null);
}
void OnJoinedRoom(){
Debug.Log ("OnJoinedRoom");
connecting = false;
SpawnMyPlayer ();
}
void SpawnMyPlayer(){
if (spawnSpots == null) {
Debug.LogError ("WTF?");
return;
}
SpawnSpot mySpawnSpot = spawnSpots [Random. Range(0, spawnSpots.Length)];
GameObject myPlayerGO = (GameObject)PhotonNetwork.Instantiate ("PlayerController", mySpawnSpot.transform.position, mySpawnSpot.transform.rotation, 0);
GameObject HatCos = myPlayerGO.transform.FindChild ("Hat").gameObject;
standbyCamera.SetActive(false);
((MonoBehaviour)myPlayerGO.GetComponent("FirstPersonController")).enabled = true;
((MonoBehaviour)myPlayerGO.GetComponent("PlayerShooting")).enabled = true;
myPlayerGO.transform.FindChild ("FirstPersonCharacter").gameObject.SetActive (true);
myPlayerGO.transform.FindChild ("Gun").gameObject.SetActive (false);
myPlayerGO.transform.FindChild ("Face").gameObject.SetActive (false);
myPlayerGO.transform.FindChild ("Minimap tag Red").gameObject.SetActive (true);
myPlayerGO.transform.FindChild ("Hat").gameObject.SetActive (false);
if (Hat == 0){
Debug.Log ("Hat = false");
return;
}else{
HatEnable (myPlayerGO);
}
}
[PunRPC]
void HatEnable(GameObject myPlayerGO){
GameObject HatCos = myPlayerGO.transform.FindChild ("Hat").gameObject;
HatCos.SetActive (true);
HatDisable (myPlayerGO);
}
void HatDisable(GameObject myPlayerGO){
GameObject HatCos = myPlayerGO.transform.FindChild ("Hat").gameObject;
HatCos.SetActive (false);
}
void Update (){
if (Input.GetKeyDown ("p")) {
SpawnMyPlayer ();
}
}
}