質問編集履歴
3
追記説明
title
CHANGED
File without changes
|
body
CHANGED
@@ -72,7 +72,9 @@
|
|
72
72
|
距離2m時点では、1個発生するのですが、 4mほど動かした結果、Instantiateが止まらず、ダダ洩れるような状態になってしまいました。
|
73
73
|

|
74
74
|
いただいた動画のように一つずつの発生方法について、ご教示いただけると幸いです。
|
75
|
+
### 追記 ロープの巻き取りについて
|
76
|
+
「ホースリールのように」と申し上げましたが、実際は回転部分はダミーで、ただアニメーションで回すだけで、根本部分から今回のロープ発生を考えています。
|
77
|
+

|
75
78
|
|
76
79
|
|
77
|
-
|
78
80
|
初歩的な質問でお手数をおかけいたしますが、ご教示いただけると幸いです。
|
2
本日分を追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -68,9 +68,11 @@
|
|
68
68
|
}
|
69
69
|
|
70
70
|
```
|
71
|
+
### 追記(2021年7月26日)
|
72
|
+
距離2m時点では、1個発生するのですが、 4mほど動かした結果、Instantiateが止まらず、ダダ洩れるような状態になってしまいました。
|
73
|
+

|
74
|
+
いただいた動画のように一つずつの発生方法について、ご教示いただけると幸いです。
|
71
75
|
|
72
76
|
|
73
77
|
|
74
|
-
|
75
|
-
|
76
78
|
初歩的な質問でお手数をおかけいたしますが、ご教示いただけると幸いです。
|
1
ご回答いただけなかったので、知りたいことの的を絞りました。
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
instantiateを使ったボールの連結
|
body
CHANGED
@@ -1,27 +1,76 @@
|
|
1
|
-
###
|
1
|
+
### 背景
|
2
2
|
長尺ロープ再現用に計算負荷を減らすことを目的としています。
|
3
3
|
↓の動画のようにロープの延長・引き戻しを根本から「発生・消滅」するように再現したいと考えております。
|
4
4
|

|
5
|
-
※AssetStore『ObiRope』
|
5
|
+
※AssetStore『ObiRope』の画像
|
6
6
|
|
7
|
-
###
|
7
|
+
###今回やろうとしていること
|
8
|
-
|
8
|
+
基準となるボール(JyakanBall)の初期位置からの移動量(2m毎)に移動したときに
|
9
|
-
|
9
|
+
初期位置からボールをinstantiateで発生させ、 ジョイントで連結させたいと考えてます。
|
10
|
-

|
11
10
|
|
12
|
-
|
11
|
+
これでロープ形状を作ってみようと思います。
|
13
|
-
いったん仮でこのキーとさせてください。
|
14
12
|
|
15
|
-
3.ボールカウント機能
|
16
|
-
特定の個数(例えば10個)のボールが発生したら、ロープの硬さを変更したいと考えてます。ロープ硬さ変化はConfigurableJointのAngular Motionの角度制限量で調整します。
|
17
13
|
|
18
|
-
|
14
|
+
###知りたいこと
|
19
|
-
|
15
|
+
instantiateで発生させた物体に、すでに発生させた物体へConfigurableJointで連結させる方法を知りたいです。
|
20
16
|
|
21
|
-
### 試したこと
|
22
|
-
当初Asset『ObiRope』で対応を考えていたのですが、
|
23
|
-
|
17
|
+

|
24
|
-
・途中で任意のロープ硬さを変えられない
|
25
|
-
という点で断念しました。
|
26
18
|
|
19
|
+
|
20
|
+
### 現在作成途中のC#
|
21
|
+
上下の矢印キーで一定速度で前後動させ、初期位置からの移動距離をmagnitude
|
22
|
+
```
|
23
|
+
public GameObject JyakanBall;
|
24
|
+
public GameObject FirstBall ;//最初に出てくるボール。こいつの動きを基準にする。
|
25
|
+
public Transform FirstPosiBase; // ボール発射初期位置
|
26
|
+
public float speed = 10; // ボールの速度
|
27
|
+
private int counter = 0;//ボール採番用
|
28
|
+
|
29
|
+
private float Distance ;
|
30
|
+
|
31
|
+
// Start is called before the first frame update
|
32
|
+
Rigidbody Rb;
|
33
|
+
void Start()
|
34
|
+
{
|
35
|
+
Rb = FirstBall.GetComponent<Rigidbody>() ;
|
36
|
+
|
37
|
+
Vector3 FirstPosition = FirstPosiBase.transform.position;//ボールの発生する位置の設定
|
38
|
+
Vector3 Direction = FirstBall.transform.forward;//初期ボール位置のZ軸方向
|
39
|
+
|
40
|
+
FirstBall.transform.position = FirstPosition;//初期位置に初期ボールを移動させる
|
41
|
+
|
42
|
+
}
|
43
|
+
|
44
|
+
// Update is called once per frame
|
45
|
+
void FixedUpdate()
|
46
|
+
{
|
47
|
+
Vector3 BallPosition = FirstBall.transform.position;
|
48
|
+
Vector3 FirstPosition2 = FirstPosiBase.transform.position;
|
49
|
+
|
50
|
+
Distance = (FirstPosition2 - BallPosition).magnitude;
|
51
|
+
Debug.Log (Distance) ;
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
if(Input.GetKey(KeyCode.UpArrow))
|
56
|
+
{
|
57
|
+
Rb.velocity = new Vector3(0,0,speed);
|
58
|
+
}
|
59
|
+
|
60
|
+
else if(Input.GetKey(KeyCode.DownArrow))
|
61
|
+
{
|
62
|
+
Rb.velocity = new Vector3(0,0,-speed);
|
63
|
+
}
|
64
|
+
|
65
|
+
else
|
66
|
+
{
|
67
|
+
Rb.velocity = Vector3.zero;
|
68
|
+
}
|
69
|
+
|
70
|
+
```
|
71
|
+
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
|
27
76
|
初歩的な質問でお手数をおかけいたしますが、ご教示いただけると幸いです。
|