teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

書式変更

2019/07/25 03:48

投稿

ponkotu
ponkotu

スコア13

title CHANGED
File without changes
body CHANGED
@@ -1,13 +1,14 @@
1
- 前提・実現したいこと
1
+ ###前提・実現したいこと
2
- アニメーション中は追跡プログラムをプログラム解除したいです。
2
+ アニメーション中は追跡プログラムをプログラム解除したいです。
3
- ##質問の内容
3
+ ###質問の内容
4
- ##unityで敵がターゲットを追跡するシステムと、弾に当たるとダメージ表示のアニメーションをするシステムをを作っています。当たり判定とアニメーションが行われる部分の変数を変えてみても、同部分で移動速度を0に変更しても、アニメーションをしたまま引きずられるように移動してしまいます。どうすれば、アニメーション中の移動を止めることができますか。
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;//updateを止めるための変数
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
- yield return new WaitForEndOfFrame();
86
+ yield return new WaitForEndOfFrame();
86
- this.gameObject.transform.position = Vector3.MoveTowards(this.gameObject.transform.position, targetObj.transform.position, speed);
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

2019/07/25 03:47

投稿

ponkotu
ponkotu

スコア13

title CHANGED
File without changes
body CHANGED
@@ -151,7 +151,7 @@
151
151
 
152
152
  ##試したこと
153
153
  ##invokeをアニメーションをさせる部分の前にいれてみました。
154
- 弾との当たり判定の後に敵オブジェクトののいどうそくど移動速度を0にする部分をつくってみました。
154
+ 弾との当たり判定の後に敵オブジェクトのの移動速度を0にする部分をつくってみました。
155
155
 
156
156
 
157
157
 

2

2019/07/24 16:36

投稿

ponkotu
ponkotu

スコア13

title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,7 @@
1
1
  #前提・実現したいこと
2
2
  #アニメーション中は追跡プログラムをプログラム解除したいです。
3
3
  ##質問の内容
4
- ##unityで敵がターゲットを追跡するシステムと、弾に当たるとダメージ表示のアニメーションをするシステムをを作っています。当たり判定とアニメーションが行われる部分の変数を変えてみても、同部分で移動速度を0に変更しても、アニメーションをしたまま引きずられるように移動してしまいます。どうすれば、アニメーション中の移動を止めることができますか。
4
+ ##unityで敵がターゲットを追跡するシステムと、弾に当たるとダメージ表示のアニメーションをするシステムをを作っています。当たり判定とアニメーションが行われる部分の変数を変えてみても、同部分で移動速度を0に変更しても、アニメーションをしたまま引きずられるように移動してしまいます。どうすれば、アニメーション中の移動を止めることができますか。
5
5
  ###発生している問題・エラーメッセージ
6
6
  ###敵オブジェクトのダメージ表示のアニメーション中に敵オブジェクトの追跡システムを止めれないことです。
7
7
  ###エラーメッセージ

1

誤字

2019/07/24 16:35

投稿

ponkotu
ponkotu

スコア13

title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,7 @@
1
1
  #前提・実現したいこと
2
2
  #アニメーション中は追跡プログラムをプログラム解除したいです。
3
3
  ##質問の内容
4
- ##unityで敵がターゲットを追跡をするシステムと、弾に当たるとダメージ表示のアニメーションをするシステムをを作っています。当たり判定とアニメーションが行われる部分変数を変えてみても、同部分で移動速度を0に変更しても、アニメーションをしたまま引きずられるように移動してしまいます。どうすれば、アニメーション中の移動を止めることができますか。
4
+ ##unityで敵がターゲットを追跡をするシステムと、弾に当たるとダメージ表示のアニメーションをするシステムをを作っています。当たり判定とアニメーションが行われる部分変数を変えてみても、同部分で移動速度を0に変更しても、アニメーションをしたまま引きずられるように移動してしまいます。どうすれば、アニメーション中の移動を止めることができますか。
5
5
  ###発生している問題・エラーメッセージ
6
6
  ###敵オブジェクトのダメージ表示のアニメーション中に敵オブジェクトの追跡システムを止めれないことです。
7
7
  ###エラーメッセージ