Files
beyond/Assets/ThirdParty/Invector-3rdPersonController/Basic Locomotion/Scripts/Generic/Triggers/vFindSpawnPoint.cs
2024-11-20 15:21:28 +01:00

64 lines
1.6 KiB
C#

using UnityEngine;
using System.Collections;
#if UNITY_5_3_OR_NEWER
using UnityEngine.SceneManagement;
#endif
namespace Invector.vCharacterController
{
public class vFindSpawnPoint : MonoBehaviour
{
public Transform spawnPoint;
public string spawnPointName;
public GameObject target;
public void AlighObjetToSpawnPoint(GameObject target, string spawnPointName)
{
this.target = target;
this.spawnPointName = spawnPointName;
// Debug.Log(spawnPointName+" "+gameObject.name);
#if UNITY_5_4_OR_NEWER
SceneManager.sceneLoaded += OnLevelFinishedLoading;
#endif
DontDestroyOnLoad(gameObject);
}
#if UNITY_5_4_OR_NEWER
void OnLevelFinishedLoading(Scene scene, LoadSceneMode mode)
{
var spawnPoint = GameObject.Find(spawnPointName);
if (spawnPoint && target)
{
target.transform.position = spawnPoint.transform.position;
target.transform.rotation = spawnPoint.transform.rotation;
}
else
{
try
{
Destroy(gameObject);
}
catch { }
}
}
#else
public void OnLevelWasLoaded(int level)
{
var spawnPoint = GameObject.Find(spawnPointName);
if(spawnPoint && target)
{
target.transform.position = spawnPoint.transform.position;
target.transform.rotation = spawnPoint.transform.rotation;
}
else
{
try
{
Destroy(gameObject);
}
catch { }
}
}
#endif
}
}