Files
Ultimate-Fishing-Simulator-…/Assets/Scripts/Assembly-CSharp/MultiplayerPlayerAvatarSpawner.cs
2026-03-04 09:37:33 +08:00

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;
}
}