質問編集履歴
4
書式変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,13 +1,14 @@
|
|
1
|
-
|
1
|
+
###前提・実現したいこと
|
2
|
-
|
2
|
+
アニメーション中は追跡プログラムをプログラム解除したいです。
|
3
|
-
|
3
|
+
###質問の内容
|
4
|
-
|
4
|
+
unityで敵がターゲットを追跡するシステムと、弾に当たるとダメージ表示のアニメーションをするシステムをを作っています。当たり判定とアニメーションが行われる部分の変数を変えてみても、同部分で移動速度を0に変更しても、アニメーションをしたまま引きずられるように移動してしまいます。どうすれば、アニメーション中の移動を止めることができますか。
|
5
|
-
|
5
|
+
###発生している問題・エラーメッセージ
|
6
|
-
|
6
|
+
敵オブジェクトのダメージ表示のアニメーション中に敵オブジェクトの追跡システムを止めれないことです。
|
7
|
-
|
7
|
+
エラーメッセージはありません。
|
8
|
-
ありません。
|
9
8
|
|
10
9
|
### 該当のソースコード
|
10
|
+
```
|
11
|
+
|
11
12
|
using System.Collections;
|
12
13
|
using System.Collections.Generic;
|
13
14
|
using UnityEngine;
|
@@ -17,25 +18,25 @@
|
|
17
18
|
public class tuiseki : MonoBehaviour
|
18
19
|
{
|
19
20
|
|
20
|
-
public GameObject targetObj;
|
21
|
+
public GameObject targetObj;
|
21
|
-
public GameObject explosion;
|
22
|
+
public GameObject explosion;
|
22
23
|
GameObject Red;
|
23
24
|
|
24
25
|
RedLifeScript script;
|
25
|
-
|
26
26
|
|
27
|
+
|
27
|
-
public GameObject bullet;
|
28
|
+
public GameObject bullet;
|
28
|
-
public int enemyHP = 3;
|
29
|
+
public int enemyHP = 3;
|
29
30
|
public Animator animator;
|
30
31
|
|
31
32
|
|
32
|
-
int i = 0;
|
33
|
+
int i = 0;
|
33
34
|
|
34
35
|
|
35
36
|
|
36
|
-
public Coroutine coroutine;
|
37
|
+
public Coroutine coroutine;
|
37
|
-
|
38
38
|
|
39
|
+
|
39
40
|
float x_Abs;
|
40
41
|
float y_Abs;
|
41
42
|
float z_Abs;
|
@@ -45,7 +46,7 @@
|
|
45
46
|
|
46
47
|
void Start()
|
47
48
|
{
|
48
|
-
Red = GameObject.Find("KadukiRedHairPrefab");
|
49
|
+
Red = GameObject.Find("KadukiRedHairPrefab");
|
49
50
|
|
50
51
|
script = Red.GetComponent<RedLifeScript>();
|
51
52
|
|
@@ -65,7 +66,7 @@
|
|
65
66
|
y_Abs = Mathf.Abs(this.gameObject.transform.position.y - targetObj.transform.position.y);
|
66
67
|
z_Abs = Mathf.Abs(this.gameObject.transform.position.z - targetObj.transform.position.z);
|
67
68
|
|
68
|
-
if (coroutine == null)//
|
69
|
+
if (coroutine == null)//
|
69
70
|
{
|
70
71
|
|
71
72
|
|
@@ -73,26 +74,26 @@
|
|
73
74
|
coroutine = StartCoroutine(MoveCoroutine());
|
74
75
|
|
75
76
|
}
|
76
|
-
|
77
|
+
}
|
77
78
|
|
78
79
|
IEnumerator MoveCoroutine()
|
79
|
-
{
|
80
|
-
float speed = speedParameter * Time.deltaTime;
|
81
|
-
|
82
|
-
while (x_Abs > 0 || y_Abs > 0 || z_Abs > 0)
|
83
80
|
{
|
81
|
+
float speed = speedParameter * Time.deltaTime;
|
84
82
|
|
83
|
+
while (x_Abs > 0 || y_Abs > 0 || z_Abs > 0)
|
84
|
+
{
|
85
|
+
|
85
|
-
|
86
|
+
yield return new WaitForEndOfFrame();
|
86
|
-
|
87
|
+
this.gameObject.transform.position = Vector3.MoveTowards(this.gameObject.transform.position, targetObj.transform.position, speed);
|
88
|
+
}
|
89
|
+
|
90
|
+
print("重なった");
|
87
91
|
}
|
88
92
|
|
89
|
-
print("重なった");
|
90
|
-
}
|
91
|
-
|
92
93
|
void OnTriggerEnter(Collider other)
|
93
94
|
{
|
94
|
-
|
95
|
+
|
95
|
-
//ターゲットにしたオブジェクトにタグをつけとく
|
96
|
+
//ターゲットにしたオブジェクトにタグをつけとく
|
96
97
|
if (other.gameObject.tag == "Target")
|
97
98
|
{
|
98
99
|
Debug.Log
|
@@ -104,15 +105,8 @@
|
|
104
105
|
script.HP = script.HP - 1;
|
105
106
|
|
106
107
|
|
107
|
-
script.damage();
|
108
|
+
script.damage();
|
108
109
|
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
110
|
}
|
117
111
|
else if (other.gameObject.tag == "Bullet")
|
118
112
|
{
|
@@ -121,35 +115,44 @@
|
|
121
115
|
{
|
122
116
|
this.gameObject.SetActive(false);
|
123
117
|
}
|
124
|
-
|
118
|
+
|
125
|
-
else if(enemyHP==1)
|
119
|
+
else if (enemyHP == 1)
|
126
120
|
{
|
127
|
-
|
128
121
|
|
129
122
|
enemyHP = enemyHP - 1;
|
130
123
|
|
131
124
|
animator.SetTrigger("die");
|
132
125
|
|
133
|
-
|
134
126
|
|
127
|
+
|
135
128
|
}
|
136
129
|
else if (enemyHP == 2)
|
137
130
|
{
|
138
|
-
|
139
131
|
|
132
|
+
|
140
133
|
enemyHP = enemyHP - 1;
|
141
134
|
|
142
135
|
animator.SetTrigger("die");
|
143
|
-
|
144
|
-
|
145
|
-
|
146
136
|
}
|
147
137
|
else if (enemyHP == 3)
|
148
138
|
{
|
149
139
|
|
150
|
-
#言語名 C#
|
151
140
|
|
141
|
+
enemyHP = enemyHP - 1;
|
142
|
+
|
143
|
+
animator.SetTrigger("die");
|
144
|
+
|
145
|
+
i = 1;
|
146
|
+
|
147
|
+
}
|
148
|
+
}
|
149
|
+
}
|
150
|
+
|
151
|
+
}
|
152
|
+
```
|
153
|
+
###言語名 C#
|
154
|
+
|
152
|
-
|
155
|
+
###試したこと
|
153
156
|
##invokeをアニメーションをさせる部分の前にいれてみました。
|
154
157
|
弾との当たり判定の後に敵オブジェクトのの移動速度を0にする部分をつくってみました。
|
155
158
|
|
3
title
CHANGED
File without changes
|
body
CHANGED
@@ -151,7 +151,7 @@
|
|
151
151
|
|
152
152
|
##試したこと
|
153
153
|
##invokeをアニメーションをさせる部分の前にいれてみました。
|
154
|
-
弾との当たり判定の後に敵オブジェクトのの
|
154
|
+
弾との当たり判定の後に敵オブジェクトのの移動速度を0にする部分をつくってみました。
|
155
155
|
|
156
156
|
|
157
157
|
|
2
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#前提・実現したいこと
|
2
2
|
#アニメーション中は追跡プログラムをプログラム解除したいです。
|
3
3
|
##質問の内容
|
4
|
-
##unityで敵がターゲットを追跡
|
4
|
+
##unityで敵がターゲットを追跡するシステムと、弾に当たるとダメージ表示のアニメーションをするシステムをを作っています。当たり判定とアニメーションが行われる部分の変数を変えてみても、同部分で移動速度を0に変更しても、アニメーションをしたまま引きずられるように移動してしまいます。どうすれば、アニメーション中の移動を止めることができますか。
|
5
5
|
###発生している問題・エラーメッセージ
|
6
6
|
###敵オブジェクトのダメージ表示のアニメーション中に敵オブジェクトの追跡システムを止めれないことです。
|
7
7
|
###エラーメッセージ
|
1
誤字
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#前提・実現したいこと
|
2
2
|
#アニメーション中は追跡プログラムをプログラム解除したいです。
|
3
3
|
##質問の内容
|
4
|
-
##unityで敵がターゲットを追跡をするシステムと、弾に当たるとダメージ表示のアニメーションをするシステムをを作っています。当たり判定とアニメーションが行われる部分
|
4
|
+
##unityで敵がターゲットを追跡をするシステムと、弾に当たるとダメージ表示のアニメーションをするシステムをを作っています。当たり判定とアニメーションが行われる部分の変数を変えてみても、同部分で移動速度を0に変更しても、アニメーションをしたまま引きずられるように移動してしまいます。どうすれば、アニメーション中の移動を止めることができますか。
|
5
5
|
###発生している問題・エラーメッセージ
|
6
6
|
###敵オブジェクトのダメージ表示のアニメーション中に敵オブジェクトの追跡システムを止めれないことです。
|
7
7
|
###エラーメッセージ
|