From 7de061b5595c3b849c3e010ed7c7deed9ce7a1ff Mon Sep 17 00:00:00 2001 From: chai <215380520@qq.com> Date: Fri, 30 Jun 2023 19:20:16 +0800 Subject: *misc --- .../Scripts/Unit/Characters/CharacterBuilder.cs | 29 ++++++++++++++++------ 1 file changed, 21 insertions(+), 8 deletions(-) (limited to 'WorldlineKeepers/Assets/Scripts/Unit/Characters/CharacterBuilder.cs') diff --git a/WorldlineKeepers/Assets/Scripts/Unit/Characters/CharacterBuilder.cs b/WorldlineKeepers/Assets/Scripts/Unit/Characters/CharacterBuilder.cs index c51d565..3293db4 100644 --- a/WorldlineKeepers/Assets/Scripts/Unit/Characters/CharacterBuilder.cs +++ b/WorldlineKeepers/Assets/Scripts/Unit/Characters/CharacterBuilder.cs @@ -11,29 +11,42 @@ namespace WK protected GameObject m_Root; protected CharacterMetadata m_Metadata; - public GameObject Build(CharacterMetadata metadata) + public PlayerController Build(CharacterMetadata metadata) { m_Metadata = metadata; - m_Root = BuildPhaseRootGameObject(); + PlayerController controller = BuildPhase_Controller(); - return m_Root; + m_Root = BuildPhase_RootGameObject(); + controller.SetGameObject(m_Root); + + CharacterBehaviour behaviour = BuildPhase_Behaviour(); + controller.SetBehaviour(behaviour); + + return controller; } - protected virtual GameObject BuildPhaseRootGameObject() + protected virtual GameObject BuildPhase_RootGameObject() { GameObject go = new GameObject(); + TransformUtils.ResetLocal(go.transform); + go.name = m_Metadata.uid; + + GameObject prefab = ResourceManager.Instance.LoadAssetFullPath(m_Metadata.prefab); + GameObject model = GameObject.Instantiate(prefab); + model.transform.SetParent(go.transform); return go; } - protected virtual PlayerController BuildPhaseController() + protected virtual CharacterBehaviour BuildPhase_Behaviour() { - return null; + CharacterBehaviour behaviour = CommonFunction.CreateInstance(m_Metadata.behaviour) as CharacterBehaviour; + return behaviour; } - protected virtual void BuildPhaseSpriteRenderer() + protected virtual PlayerController BuildPhase_Controller() { - + return null; } } -- cgit v1.1-26-g67d0