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

質問編集履歴

5

2019/10/09 09:28

投稿

cushionA
cushionA

スコア90

title CHANGED
File without changes
body CHANGED
@@ -160,4 +160,9 @@
160
160
  https://imgur.com/MVzawhE.png
161
161
  歩きモーションです
162
162
  https://imgur.com/flkVvzf.png
163
- https://imgur.com/qKi6B6y.png
163
+ https://imgur.com/qKi6B6y.png
164
+
165
+ ソースコードについてisDownまわりとアニメーション関連に絞りました。
166
+ もしこれでも不十分でしたら、マナー違反でないのならGitで管理しているプロジェクトをこの場に出すようなことをさせていただいてもよろしいでしょうか?
167
+ それはともかく、幾度もの不手際重ねてお詫び申し上げます。
168
+ どうぞご鞭撻のほどよろしくお願いいたします。

4

2019/10/09 09:28

投稿

cushionA
cushionA

スコア90

title CHANGED
File without changes
body CHANGED
@@ -16,6 +16,69 @@
16
16
  ### 該当のソースコード
17
17
 
18
18
  ```C#
19
+
20
+ Animator anim = null;
21
+ Animation anime;
22
+ private Rigidbody2D rb = null;
23
+ private string enemyTag = "Enemy";
24
+ SpriteRenderer sr;
25
+ private float dashTime;
26
+
27
+ void Start()
28
+ {
29
+ //コンポーネントのインスタンスを捕まえる
30
+ anim = GetComponent<Animator>();
31
+ anime = GetComponent<Animation>();
32
+ rb = GetComponent<Rigidbody2D>();
33
+ sr = GetComponent<SpriteRenderer>();
34
+
35
+ }
36
+
37
+ /// <summary>
38
+ /// X成分で必要な計算をし、速度を返す。
39
+ /// </summary>
40
+ /// <returns>The x.</returns>
41
+ private float SetX()
42
+ {
43
+ float xSpeed;
44
+ float horizontalKey = Input.GetAxis("Horizontal");
45
+
46
+ if (horizontalKey > 0)
47
+ {
48
+ transform.localScale = new Vector3(1, 1, 1);
49
+ isRun = true;
50
+
51
+ xSpeed = speed;
52
+ dashTime += Time.deltaTime;
53
+ }
54
+ else if (horizontalKey < 0)
55
+ {
56
+ transform.localScale = new Vector3(-1, 1, 1);
57
+ isRun = true;
58
+ xSpeed = -speed;
59
+ dashTime += Time.deltaTime;
60
+ }
61
+ else
62
+ {
63
+ isRun = false;
64
+ xSpeed = 0.0f;
65
+ dashTime = 0.0f;
66
+ }
67
+
68
+ if (horizontalKey > 0 && beforeKey < 0)
69
+ {
70
+ dashTime = 0.0f;
71
+ }
72
+ else if (horizontalKey < 0 && beforeKey > 0)
73
+ {
74
+ dashTime = 0.0f;
75
+ }
76
+
77
+ xSpeed *= dashCurve.Evaluate(dashTime);
78
+ beforeKey = horizontalKey;
79
+ return xSpeed;
80
+ }
81
+
19
82
  void OnCollisionEnter2D(Collision2D collision)
20
83
  {
21
84
  if (collision.gameObject.tag == "Enemy")

3

2019/10/09 09:24

投稿

cushionA
cushionA

スコア90

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,6 @@
1
+ ```ここに言語を入力##
2
+ コード
1
- ### 前提・実現したいこと
3
+ ```### 前提・実現したいこと
2
4
 
3
5
  unityで敵と衝突した際にレイヤーを移動して無敵判定をつけて、さらにその間ダメージを受けたことを表現するアニメーションが再生されるようにしたいと考えています。
4
6
 
@@ -86,4 +88,13 @@
86
88
  質問に質問で返す無知をお許しください。
87
89
  回答としてはUpdateと同じくフレームごとに呼び出されていると認識しているものの、もし違うのであれば呼び出せていませんということになります。
88
90
  特にソースコードの外でUpdateやFixedUpdateで呼び出していたりはしません。
89
- すみません。
91
+ すみません。
92
+
93
+ アニメーションの素材です
94
+ デフォルト、立って停止している状態
95
+ https://imgur.com/MlkXxpP.png
96
+ ダメージを受けた状態(isDown==trueの際にPlayしているもの)
97
+ https://imgur.com/MVzawhE.png
98
+ 歩きモーションです
99
+ https://imgur.com/flkVvzf.png
100
+ https://imgur.com/qKi6B6y.png

2

2019/10/09 09:17

投稿

cushionA
cushionA

スコア90

title CHANGED
File without changes
body CHANGED
File without changes

1

2019/10/09 07:18

投稿

cushionA
cushionA

スコア90

title CHANGED
File without changes
body CHANGED
@@ -75,4 +75,15 @@
75
75
 
76
76
  unityのバージョンは2019,1,10f1というやつのpersonalです。
77
77
  その他足りない情報などあれば随時付け足させていただくのでどうぞお申し付けください。
78
- よろしくお願いいたします。
78
+ よろしくお願いいたします。
79
+
80
+
81
+
82
+ 追記
83
+ DamageMotion()はフレームごとにisDownのif文で判定を行って実行されるものと認識していました。
84
+ Fixedやawakeやstartがつかない関数は全てupdateと同じ扱いになると聞いていたので。
85
+ もし違うのであれば、UpdateやFixedで別途呼び出したほうがよろしいのでしょうか。
86
+ 質問に質問で返す無知をお許しください。
87
+ 回答としてはUpdateと同じくフレームごとに呼び出されていると認識しているものの、もし違うのであれば呼び出せていませんということになります。
88
+ 特にソースコードの外でUpdateやFixedUpdateで呼び出していたりはしません。
89
+ すみません。