using LitJson; using MovementEffects; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.IO; using UnityEditor.Compilation; using UnityEngine; using UnityEngine.UI; using WK; using WK.Data; public class TestCharacter : MonoBehaviour { public Transform m_RootStage; public string m_TestingScene = "Assets/Bundle/stages/stage_arena/stage.json"; public InputField m_CharacterJson; public Button m_BtnCreate; private PlayerController player; private void Awake() { Timing.Instance.StartCoroutine(CoSetup()); m_BtnCreate.onClick.AddListener(OnClickCreate); } IEnumerator CoSetup() { var handle = DataManager.Instance.AsyncLoadAll(); while (handle.IsRunning) yield return Timing.WaitForSeconds(0.1f); PhysicsManager.Instance.Initialize(); yield return Timing.WaitForSeconds(0.1f); BuildStage(); } void BuildStage() { string file = m_TestingScene; string content = File.ReadAllText(file); StageMetadata metadata = JsonMapper.ToObject(content); StageBuilder.Instance.AsyncBuildStage(metadata, m_RootStage); } void OnClickCreate() { string json = m_CharacterJson.text; string content = File.ReadAllText(json); CharacterMetadata meta = JsonMapper.ToObject(content); if(meta != null) { CharacterBuilder builder = CommonFunction.CreateInstance(meta.builder) as CharacterBuilder; if (builder == null) return; player = builder.Build(meta); } } private void Update() { player?.OnUpdate(); } }