using CSNetwork.GPDataType; using CSNetwork.Protocols.RPCData; using System.Data; using Unity.Cinemachine; using Unity.VisualScripting; using UnityEngine; using UnityEngine.UIElements; public class GameController : MonoBehaviour { private static GameController instance; [SerializeField] private CECHostPlayer characterPrefab; [SerializeField] private CECMonster monsterPrefab; [SerializeField] private CinemachineCamera cinemachineCamera; //[SerializeField] private Transform ground; CECHostPlayer hostPlayer; public static GameController Instance { get { if (instance == null) { instance = FindAnyObjectByType(); } return instance; } } private void Awake() { if (instance == null) { instance = this; } } public void Log(string s) { Debug.LogError(s); } public CECHostPlayer GetHostPlayer() { if (hostPlayer == null) { hostPlayer = FindAnyObjectByType(); } return hostPlayer; } public void InitCharacter(cmd_self_info_1 info) { if (characterPrefab == null) { Debug.LogError("null prefab"); return; } CECPlayer.InitStaticRes(); hostPlayer = Instantiate(characterPrefab, transform); hostPlayer.InitCharacter(info); cinemachineCamera.Follow = hostPlayer.transform; cinemachineCamera.ForceCameraPosition(hostPlayer.transform.position, Quaternion.identity); CinemachineTouchOrbit.Instance.SetOrbitTarget(hostPlayer.transform); //Vector3 pos = new Vector3(info.pos.x, info.pos.y, info.pos.z); //Vector3 posCam = pos; //posCam.z -= 10f; //camera.transform.position = posCam; //Vector3 posGround = pos; //posGround.y -= 2f; //ground.transform.position = posGround; } public CECMonster GetMonster() { return Instantiate(monsterPrefab, transform); } public GameObject InitCharacter(info_player_1 info) { if (characterPrefab == null) { Debug.LogError("null prefab"); return null; } CECHostPlayer character = Instantiate(characterPrefab, transform); character.InitCharacter(info); return character.gameObject; } private void OnDestroy() { instance = null; } }