質問編集履歴

5

追記

2018/11/28 09:57

投稿

sumikko6210
sumikko6210

スコア138

test CHANGED
File without changes
test CHANGED
@@ -448,9 +448,13 @@
448
448
 
449
449
  ### 試したこと
450
450
 
451
+
452
+
453
+ 【追記】
454
+
455
+ 距離が変わる原因なのですが、すでに投げてある石のrigidbodyが投げる石のrigidbodyに加算されているようでした。すでに投げてある石のrigidbodyを除くと同じ飛距離を飛んでくれました。
456
+
451
- 石が生成される距離や摩擦大きさなどを確認しましたが、どれも同じした
457
+ 原因はわかったですが、解決策がわからずに今困っている状況
452
-
453
-
454
458
 
455
459
 
456
460
 

4

追記

2018/11/28 09:57

投稿

sumikko6210
sumikko6210

スコア138

test CHANGED
File without changes
test CHANGED
@@ -30,6 +30,12 @@
30
30
 
31
31
  ### 該当のソースコード
32
32
 
33
+ Stone.csは石に
34
+
35
+ NearestScript.csは真ん中の白いSphereに入れています。
36
+
37
+
38
+
33
39
 
34
40
 
35
41
  Stone.cs

3

修正依頼

2018/11/26 12:59

投稿

sumikko6210
sumikko6210

スコア138

test CHANGED
File without changes
test CHANGED
@@ -430,6 +430,14 @@
430
430
 
431
431
 
432
432
 
433
+ FixedUpdate内で投げた時のrb.velocityの大きさを確認しましたが、
434
+
435
+ 大きさはすべて(0, 0, 30)でした。
436
+
437
+
438
+
439
+ 一投目の石はInstantiateではなく、元から置いてあります。
440
+
433
441
 
434
442
 
435
443
  ### 試したこと
@@ -438,10 +446,6 @@
438
446
 
439
447
 
440
448
 
441
- FixedUpdate内でrb.velocityの大きさを確認しましたが、
442
-
443
- 大きさはすべて(0, 0, 30)でした。
444
-
445
449
 
446
450
 
447
451
  ### 補足情報(FW/ツールのバージョンなど)

2

修正依頼

2018/11/26 12:55

投稿

sumikko6210
sumikko6210

スコア138

test CHANGED
File without changes
test CHANGED
@@ -212,6 +212,226 @@
212
212
 
213
213
 
214
214
 
215
+ カーリングの距離判定
216
+
217
+ NearestScript.cs
218
+
219
+ ```C#
220
+
221
+ using System.Collections;
222
+
223
+ using System.Collections.Generic;
224
+
225
+ using UnityEngine;
226
+
227
+
228
+
229
+ public class NearestScript : MonoBehaviour
230
+
231
+ {
232
+
233
+ GameObject nearestStone = null;
234
+
235
+ public GameObject[] stones;
236
+
237
+
238
+
239
+
240
+
241
+ // Use this for initialization
242
+
243
+ void Start()
244
+
245
+ {
246
+
247
+
248
+
249
+ }
250
+
251
+ void Update()
252
+
253
+ {
254
+
255
+ measure();
256
+
257
+ score();
258
+
259
+ }
260
+
261
+ // Update is called once per frame
262
+
263
+ void measure()
264
+
265
+ {
266
+
267
+ if (Stone.rb.IsSleeping() && Stone.Ika)
268
+
269
+ {
270
+
271
+ GameObject[] stones = GameObject.FindGameObjectsWithTag("stone");
272
+
273
+ float minDis = 100f;
274
+
275
+ foreach (GameObject stone in stones)
276
+
277
+ {
278
+
279
+ float dis = Vector3.Distance(transform.position, stone.transform.position);
280
+
281
+ if (dis < minDis)
282
+
283
+ {
284
+
285
+ minDis = dis;
286
+
287
+ nearestStone = stone;
288
+
289
+ }
290
+
291
+ }
292
+
293
+ }
294
+
295
+ }
296
+
297
+
298
+
299
+ void score()
300
+
301
+ {
302
+
303
+ int point = 0;
304
+
305
+ if(Stone.count == 6)
306
+
307
+ {
308
+
309
+ if (nearestStone.name.Contains("aka"))
310
+
311
+ {
312
+
313
+ GameObject[] stones = GameObject.FindGameObjectsWithTag("stone");
314
+
315
+ float minDis = 1000f;
316
+
317
+ foreach (GameObject stone in stones)
318
+
319
+ {
320
+
321
+ float dis = Vector3.Distance(transform.position, stone.transform.position);
322
+
323
+ if (dis < minDis && stone.name.Contains("ao"))
324
+
325
+ {
326
+
327
+ minDis = dis;
328
+
329
+ }
330
+
331
+ }
332
+
333
+
334
+
335
+ foreach (GameObject stone in stones)
336
+
337
+ {
338
+
339
+ float dis = Vector3.Distance(transform.position, stone.transform.position);
340
+
341
+ if (dis < minDis && stone.name.Contains("aka"))
342
+
343
+ {
344
+
345
+ point++;
346
+
347
+ }
348
+
349
+ }
350
+
351
+ Debug.Log(point);
352
+
353
+ }
354
+
355
+
356
+
357
+ if (nearestStone.name.Contains("ao"))
358
+
359
+ {
360
+
361
+ GameObject[] stones = GameObject.FindGameObjectsWithTag("stone");
362
+
363
+ float minDis = 1000f;
364
+
365
+ foreach (GameObject stone in stones)
366
+
367
+ {
368
+
369
+ float dis = Vector3.Distance(transform.position, stone.transform.position);
370
+
371
+ if (dis < minDis && stone.name.Contains("aka"))
372
+
373
+ {
374
+
375
+ minDis = dis;
376
+
377
+ }
378
+
379
+ }
380
+
381
+
382
+
383
+ foreach (GameObject stone in stones)
384
+
385
+ {
386
+
387
+ float dis = Vector3.Distance(transform.position, stone.transform.position);
388
+
389
+ if (dis < minDis && stone.name.Contains("ao"))
390
+
391
+ {
392
+
393
+ point++;
394
+
395
+ }
396
+
397
+ }
398
+
399
+ Debug.Log(point);
400
+
401
+ }
402
+
403
+ }
404
+
405
+ }
406
+
407
+
408
+
409
+ }
410
+
411
+
412
+
413
+ ```
414
+
415
+
416
+
417
+ 投げた石が止まったときに次の石を生成したいため、bool型変数Ikaを使用しています。
418
+
419
+ 投げた時(上キーを押したとき)にIkaをtrue、かつその投げた石が止まったとき(IsSleeping())に次の石を生成したいために利用しています。(使わないと、生成したときに、IsSleeping()がtrueになってしまう)
420
+
421
+
422
+
423
+ staticなのはNearestScriptで変数を利用したいがためにのみ使っています。
424
+
425
+
426
+
427
+ キー入力では左右は石の左右の動作、上は真っすぐの動作を記載しています。
428
+
429
+ 今回は真っすぐの動作が期待通りの動作をしていない状況です、
430
+
431
+
432
+
433
+
434
+
215
435
  ### 試したこと
216
436
 
217
437
  石が生成される距離や摩擦の大きさなどを確認しましたが、どれも同じでした。

1

改善

2018/11/25 14:36

投稿

sumikko6210
sumikko6210

スコア138

test CHANGED
File without changes
test CHANGED
@@ -216,7 +216,11 @@
216
216
 
217
217
  石が生成される距離や摩擦の大きさなどを確認しましたが、どれも同じでした。
218
218
 
219
+
220
+
221
+ FixedUpdate内でrb.velocityの大きさを確認しましたが、
222
+
219
- ご回答よろくお願いいします
223
+ 大きさはすべて(0, 0, 30)でした。
220
224
 
221
225
 
222
226