回答編集履歴

2

追記

2021/03/29 11:54

投稿

tsuki01
tsuki01

スコア1751

test CHANGED
@@ -103,3 +103,71 @@
103
103
  ※こちらでは、「igaguriController」クラス内のParticleSystemはコメントアウトして動作させています。
104
104
 
105
105
  ![イメージ説明](0dd801e070657dfba3002b19f0d868c1.gif)
106
+
107
+
108
+
109
+ ---
110
+
111
+
112
+
113
+ # 2021.03.29 追記
114
+
115
+ > 一つ質問です。igaguriのインスタンスにすでにrigidBodyが付いているなら、AddForceメソッドを使う前に、
116
+
117
+ this.igaguri = igarugi.GetComponent<Rigidbody>();//translateメソッドの非簡略版
118
+
119
+ の行はいらないのではと思いました。
120
+
121
+ なぜ必要なのか教えていただけませんか??
122
+
123
+
124
+
125
+ AddForceするには、インスタンス化したigaguriのRigidBody参照が必要になるので、上記の行でGetComponentしています。(提示されたコードでは、igaguriからRigidBodyを取得する箇所が見当たらなかった)
126
+
127
+
128
+
129
+ ですが、以下修正を行えば上記の行は不要になります。
130
+
131
+ (以下の様にすることで、インスタンス化と同時にStartメソッドが呼ばれ、毬栗が飛んで行きます。
132
+
133
+ インスタンス化と同時に呼ばれるのが都合悪い場合、模範回答の様に別途メソッドを分けると良いかと思います。)
134
+
135
+
136
+
137
+ 手順1、igaguriControllerクラス内の、Startメソッドのコメントを外す
138
+
139
+ ```C#
140
+
141
+ void Start()
142
+
143
+ {
144
+
145
+ this.rigid = GetComponent<Rigidbody>();//translateメソッドの非簡略版
146
+
147
+ this.rigid.AddForce(0, 10, 10, ForceMode.Impulse);
148
+
149
+ }
150
+
151
+ ```
152
+
153
+
154
+
155
+ 手順2、igaguriGeneratorクラス内の、Updateメソッドの中身を以下の様にする
156
+
157
+ ```C#
158
+
159
+ void Update()
160
+
161
+ {
162
+
163
+ if (Input.GetMouseButtonDown(0))
164
+
165
+ {
166
+
167
+ GameObject igaguri = Instantiate(igaguriPrefab) as GameObject;//インスタンスを作る
168
+
169
+ }
170
+
171
+ }
172
+
173
+ ```

1

編集

2021/03/29 11:54

投稿

tsuki01
tsuki01

スコア1751

test CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
  **修正例**
20
20
 
21
- igaguriGeneratorクラス内の、Instantiateした後のオブジェクトからRigidBodyを取得する様に修正すれば改善しまでしょうか。
21
+ igaguriGeneratorクラス内の、Instantiateした後のオブジェクトからRigidBodyを取得する様に修正すれば、いがぐりを飛ばるようにならないでしょうか。
22
22
 
23
23
  ```diff
24
24