- Home /
How do i check which object was instantiated last?
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 ();
}
}
}
Answer by danivdwerf · Oct 09, 2016 at 07:28 AM
He man,
I did not read your code because in most ways it could be fixed by storing the items. if you know the amount of objects you are going to spawn, just put them in an array, else put them in a list. In an array with 5 items the last item will me myArray[4] if it was a List it would me myList[myList.Count-1]
hope it helps :)
The list method may actually work will try asap.
BUT what number will the newest object be in the list?
ALSO! I do now know how many objects will be spawn seeing as how this game is multiplayer and there is no max room size.
One last thing i am quite new to unity could somebody put he syntax for adding this list.
I dont need it in the script i just need how the syntax would look