40 lines
1.3 KiB
C#
40 lines
1.3 KiB
C#
using ECM2.Examples.FirstPerson;
|
|
using Obvious.Soap;
|
|
using UnityEngine;
|
|
|
|
public class MultiplayerPlayerAvatarSpawner : MonoBehaviour
|
|
{
|
|
[SerializeField]
|
|
private ScriptableEventNetworkObjectSpawn OnNetworkObjectSpawn;
|
|
|
|
[SerializeField]
|
|
private GameObjectVariable playerGameObject;
|
|
|
|
private void MultiplayerManager_OnInSession()
|
|
{
|
|
Debug.Log("(MultiplayerPlayerAvatarSpawner) Spawning player avatar");
|
|
OnNetworkObjectSpawn.Raise(new NetworkObjectSpawn("MultiplayerAvatarControler", playerGameObject.Value.transform.position, playerGameObject.Value.transform.rotation));
|
|
}
|
|
|
|
private void MultiplayerAvatarControler_OnStartLocal(MultiplayerAvatarControler multiplayerAvatarControler)
|
|
{
|
|
if (playerGameObject.Value != null && playerGameObject.Value.TryGetComponent<FirstPersonCharacter>(out var component))
|
|
{
|
|
Debug.Log("(MultiplayerPlayerAvatarSpawner) Initializing player avatar");
|
|
multiplayerAvatarControler.Init(component);
|
|
}
|
|
}
|
|
|
|
private void OnEnable()
|
|
{
|
|
MultiplayerManager.OnInSession += MultiplayerManager_OnInSession;
|
|
MultiplayerAvatarControler.OnStartLocal += MultiplayerAvatarControler_OnStartLocal;
|
|
}
|
|
|
|
private void OnDisable()
|
|
{
|
|
MultiplayerManager.OnInSession -= MultiplayerManager_OnInSession;
|
|
MultiplayerAvatarControler.OnStartLocal -= MultiplayerAvatarControler_OnStartLocal;
|
|
}
|
|
}
|