summaryrefslogtreecommitdiff
path: root/WorldlineKeepers/Assets/Scripts/Unit/Characters/CharacterBuilder.cs
diff options
context:
space:
mode:
Diffstat (limited to 'WorldlineKeepers/Assets/Scripts/Unit/Characters/CharacterBuilder.cs')
-rw-r--r--WorldlineKeepers/Assets/Scripts/Unit/Characters/CharacterBuilder.cs29
1 files changed, 21 insertions, 8 deletions
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<GameObject>(m_Metadata.prefab);
+ GameObject model = GameObject.Instantiate<GameObject>(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;
}
}