annotate Assets/Application/Scripts/Player.cs @ 11:cf20add31466

change putAttribute -> use fmap.
author Kazuma Takeda
date Sat, 28 Jan 2017 19:15:44 +0900
parents 599bd8ddb72b
children b55d586dd4eb
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
1 using UnityEngine;
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
2 using System.Collections;
3
2dd40b4412e4 Create game base.
Kazuma
parents: 0
diff changeset
3 using System.Collections.Generic;
8
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
4 using UnityEngine.UI;
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
5 using JungleDB;
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
6 using System.Text;
0
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
7
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
8 public class Player : MonoBehaviour { // Singleton
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
9 // --------------------------------------
8
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
10
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
11 private readonly int BASEHP = 10;
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
12
0
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
13 public static Player Instance;
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
14 private GameObject eye;
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
15 private CharacterController cc;
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
16 private Vector3 Direction;
3
2dd40b4412e4 Create game base.
Kazuma
parents: 0
diff changeset
17 // 今見ているフィールドのアイテム
2dd40b4412e4 Create game base.
Kazuma
parents: 0
diff changeset
18 public GameObject LookedObject;
2dd40b4412e4 Create game base.
Kazuma
parents: 0
diff changeset
19 // セットする前のアイテム
8
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
20 public string haveItemType;
3
2dd40b4412e4 Create game base.
Kazuma
parents: 0
diff changeset
21
8
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
22 public DeathZone deathZone;
3
2dd40b4412e4 Create game base.
Kazuma
parents: 0
diff changeset
23
2dd40b4412e4 Create game base.
Kazuma
parents: 0
diff changeset
24 public delegate void Callback(int n0, int n1, int n2);
2dd40b4412e4 Create game base.
Kazuma
parents: 0
diff changeset
25 public Callback callback;
2dd40b4412e4 Create game base.
Kazuma
parents: 0
diff changeset
26
8
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
27 /* paramator */
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
28 public int HP = 10;
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
29
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
30 private Jungle jungle;
0
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
31 // -------------------------------------
8
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
32
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
33 private void Awake () {
0
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
34 if (Instance == null) {
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
35 Instance = this;
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
36 }
8
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
37 }
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
38
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
39 private void Start () {
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
40 eye = this.transform.FindChild ("Eye").gameObject;
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
41 cc = this.GetComponent<CharacterController> ();
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
42 deathZone.SetHitCallback (Damege);
0
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
43 }
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
44
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
45 private void Update () {
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
46 Gravity ();
8
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
47 if (Input.GetMouseButtonUp (1)) {
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
48 SetItem ();
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
49 }
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
50 ChangeGage ();
0
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
51 }
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
52
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
53 public void Move (bool b) {
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
54 if (b) {
4
2878be4487ec add Maping Code.
Kazuma
parents: 3
diff changeset
55 Direction += this.transform.forward * Time.deltaTime / 10f;
0
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
56 } else {
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
57 Direction.x = 0;
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
58 Direction.z = 0;
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
59 }
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
60 cc.Move (Direction);
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
61 }
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
62
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
63 public void EyeMove (Vector3 v3) {
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
64 eye.transform.Rotate (-v3.x, 0, 0);
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
65 this.transform.Rotate (0, v3.y, 0);
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
66 }
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
67
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
68 public void Gravity () {
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
69 Direction.y = -0.1f;
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
70 }
3
2dd40b4412e4 Create game base.
Kazuma
parents: 0
diff changeset
71
2dd40b4412e4 Create game base.
Kazuma
parents: 0
diff changeset
72 public void SetLookedObject (GameObject obj) {
2dd40b4412e4 Create game base.
Kazuma
parents: 0
diff changeset
73 LookedObject = obj;
2dd40b4412e4 Create game base.
Kazuma
parents: 0
diff changeset
74 }
2dd40b4412e4 Create game base.
Kazuma
parents: 0
diff changeset
75
8
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
76 public void SetHaveObjectNumber (string type) {
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
77 haveItemType = type;
3
2dd40b4412e4 Create game base.
Kazuma
parents: 0
diff changeset
78 }
2dd40b4412e4 Create game base.
Kazuma
parents: 0
diff changeset
79
2dd40b4412e4 Create game base.
Kazuma
parents: 0
diff changeset
80 public void GetItem () {
2dd40b4412e4 Create game base.
Kazuma
parents: 0
diff changeset
81 if (LookedObject != null) {
8
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
82 Item stage = LookedObject.GetComponent<Item> ();
3
2dd40b4412e4 Create game base.
Kazuma
parents: 0
diff changeset
83 stage.Delete ();
2dd40b4412e4 Create game base.
Kazuma
parents: 0
diff changeset
84 }
2dd40b4412e4 Create game base.
Kazuma
parents: 0
diff changeset
85 }
2dd40b4412e4 Create game base.
Kazuma
parents: 0
diff changeset
86
2dd40b4412e4 Create game base.
Kazuma
parents: 0
diff changeset
87 public void SetItem () {
2dd40b4412e4 Create game base.
Kazuma
parents: 0
diff changeset
88 if (LookedObject != null) {
8
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
89 StageManager.Instance.CreateItem (LookedObject.transform.position + Vector3.up, 1);
3
2dd40b4412e4 Create game base.
Kazuma
parents: 0
diff changeset
90 }
2dd40b4412e4 Create game base.
Kazuma
parents: 0
diff changeset
91 }
2dd40b4412e4 Create game base.
Kazuma
parents: 0
diff changeset
92
2dd40b4412e4 Create game base.
Kazuma
parents: 0
diff changeset
93 public void SetCallback (Callback c) {
2dd40b4412e4 Create game base.
Kazuma
parents: 0
diff changeset
94 this.callback = c;
2dd40b4412e4 Create game base.
Kazuma
parents: 0
diff changeset
95 }
2dd40b4412e4 Create game base.
Kazuma
parents: 0
diff changeset
96
8
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
97 public void ChangeGage () {
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
98 // print (HP / BASEHP);
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
99 GameObject.Find ("MoveHP").GetComponent<Image> ().fillAmount = (float)HP / (float)BASEHP;
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
100 }
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
101
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
102 public void SetPlayerNode () {
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
103 jungle = SaveDataTest.jungle;
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
104 JungleTree tree = jungle.getTreeByName ("SceneTree");
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
105 JungleTreeEditor edt = tree.getTreeEditor ();
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
106
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
107 NodePath playerpath = new DefaultNodePath ().add (0);
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
108 edt = edt.putAttribute (playerpath, "HP", Encoding.UTF8.GetBytes (HP.ToString())).b();
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
109 edt = edt.commit ().b();
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
110 }
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
111
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
112 private void OnControllerColliderHit (ControllerColliderHit hit) {
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
113 SetPlayerNode ();
3
2dd40b4412e4 Create game base.
Kazuma
parents: 0
diff changeset
114 }
8
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
115
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
116 private void Damege (int d) {
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
117 this.HP -= d;
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
118 UpdatePlayerNode ();
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
119 }
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
120
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
121 private void UpdatePlayerNode () {
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
122 jungle = SaveDataTest.jungle;
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
123 JungleTree tree = jungle.getTreeByName ("SceneTree");
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
124 JungleTreeEditor edt = tree.getTreeEditor ();
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
125
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
126 NodePath playerpath = new DefaultNodePath ().add (0);
11
cf20add31466 change putAttribute -> use fmap.
Kazuma Takeda
parents: 8
diff changeset
127 Either<Error, JungleTreeEditor> e = edt.putAttribute (playerpath, this);
cf20add31466 change putAttribute -> use fmap.
Kazuma Takeda
parents: 8
diff changeset
128 // e.fmap (edt.commit ());
cf20add31466 change putAttribute -> use fmap.
Kazuma Takeda
parents: 8
diff changeset
129
cf20add31466 change putAttribute -> use fmap.
Kazuma Takeda
parents: 8
diff changeset
130
8
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
131 }
599bd8ddb72b Create Item Tree and Create Stage.
Kazuma Takeda
parents: 4
diff changeset
132
0
e5ef0342d00b First commit
Kazuma
parents:
diff changeset
133 }