using System.Collections.Generic; using Photon.Pun; using UnityEngine; public class MultiplayerRodSupportSpawner : MonoBehaviour { [SerializeField] private MultiplayerRodSupportEntity rodSupport_prefab; private List spawnedRodSupports; private void SceneLoader_OnBeginSceneLoad(string sceneLoadName) { spawnedRodSupports = new List(); } private void RodSupport_OnSupportDrop(RodSupport rodSupport) { if (MultiplayerManager.InRoomLocationStatic && rodSupport != null) { MultiplayerRodSupportEntity component = PhotonNetwork.Instantiate(rodSupport_prefab.name, rodSupport.transform.position, rodSupport.transform.rotation, 0).GetComponent(); component.Init(rodSupport); spawnedRodSupports.Add(component); } } private void RodSupport_OnSupportTake(RodSupport rodSupport) { if (MultiplayerManager.InRoomLocationStatic) { MultiplayerRodSupportEntity multiplayerRodSupportEntity = spawnedRodSupports.Find((MultiplayerRodSupportEntity element) => element.RodSupport == rodSupport); if (multiplayerRodSupportEntity != null) { spawnedRodSupports.Remove(multiplayerRodSupportEntity); PhotonNetwork.Destroy(multiplayerRodSupportEntity.gameObject); } } } private void OnEnable() { SceneLoader.OnBeginSceneLoad += SceneLoader_OnBeginSceneLoad; RodSupport.OnSupportTake += RodSupport_OnSupportTake; RodSupport.OnSupportDrop += RodSupport_OnSupportDrop; } private void OnDisable() { SceneLoader.OnBeginSceneLoad -= SceneLoader_OnBeginSceneLoad; RodSupport.OnSupportTake -= RodSupport_OnSupportTake; RodSupport.OnSupportDrop -= RodSupport_OnSupportDrop; } }