summaryrefslogtreecommitdiff
path: root/WorldlineKeepers/Assets/Scripts/Unit/Characters/PlayerController.cs
blob: 0156045b6cb27f3158b99015579a496f20264cff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

namespace WK
{
    // 玩家角色数据结构
    // 
    // PlayerController 
    //     CharacterInfo
    //          CharacterStats 
    //          CharacterBuffs
    //          CharacterPerks
    //     CharacterBehaviour
    //     CharacterAnimation

    /// <summary>
    /// 玩家角色根节点
    /// </summary>
    public sealed class PlayerController : INotification
    {
        /// <summary>
        /// 角色所有当前数值集合
        /// </summary>
        private CharacterInfo m_CharacterInfo;
        public CharacterInfo info { get { return m_CharacterInfo; } }

        /// <summary>
        /// 角色行为逻辑
        /// </summary>
        private CharacterBehaviour m_CharacterBehaviour;
        public CharacterBehaviour behaviour { get { return m_CharacterBehaviour; } }

        /// <summary>
        /// gameobject根节点
        /// </summary>
        private GameObject m_GameObject;
        public GameObject gameObject { get { return m_GameObject;} }

        public void OnCreate()
        {
        }

        public void SetGameObject(GameObject go)
        {
            m_GameObject = go;
        }

        public void SetBehaviour(CharacterBehaviour behaviour)
        {
            m_CharacterBehaviour = behaviour;
        }

        /// <summary>
        /// 逻辑更新
        /// </summary>
        public void OnUpdate()
        {
            // preupdate 
            behaviour?.OnPreUpdate();

            // update
            info?.OnUpdate();
            behaviour?.OnUpdate();

            // post update
            behaviour?.OnPostUpdate();
        }

    }

}