質問編集履歴

2

2018/12/03 23:50

投稿

Kagenui219245
Kagenui219245

スコア17

test CHANGED
File without changes
test CHANGED
File without changes

1

前回質問したものがよろしくなかったので再編集しました。

2018/12/03 23:50

投稿

Kagenui219245
Kagenui219245

スコア17

test CHANGED
@@ -1 +1 @@
1
- UnityのhingeJoint機能の接続先をスクリプトで設定したい
1
+ UnityのfixedJoint機能の接続先をスクリプトで設定したい
test CHANGED
@@ -1,3 +1,83 @@
1
- UnityではCUBEにJointをスクリプトする、接続先設定されていないめ、Worldに引っ付いてしまい、CUBEがその位置固定れまよね
1
+ やりたいことですが、onotchi_ (id:onoty3d)さんいう方作成されていたプログラムコードを用いて、生成Cube同士をfixedJoint接続せたいです。
2
2
 
3
+ onotchi_ (id:onoty3d)さんのサイト↓
4
+
3
- その接続先をCUBEが2個隣同士で並んでいたとして、隣のCUBEにJointを接続し、CUBEを引っつけたい時は、その隣のCUBEの座標を取得して、接続先の座標として設定するのが良いのでしょうか?他に良い方法がありましたら教えてください!
5
+ http://onoty3d.hatenablog.com/entry/2017/06/11/190909
6
+
7
+
8
+
9
+ やったことなのですが、VoxelGeneratr.cs内のpraibate void SpawnVoxel()のコードに以下のことを追加してみました。
10
+
11
+
12
+
13
+ ・生成されたCubeにRigidbodyとFixedJointをAddComponent
14
+
15
+ ・cuountでvoxelの個数表示
16
+
17
+ ・生成したときにnameを変える(connectedBodyで名前指定ができると考えたので)
18
+
19
+
20
+
21
+ Rigidbody rb;
22
+
23
+ int count = 0;
24
+
25
+ int i = 1;
26
+
27
+ private void SpawnVoxel()
28
+
29
+ {
30
+
31
+ var voxel = GameObject.CreatePrimitive(PrimitiveType.Cube);
32
+
33
+
34
+
35
+ voxel.layer = (int)Mathf.Log(this.VoxelLayer.value, 2);
36
+
37
+ voxel.transform.position = this._transform.position + this._voxelPosition;
38
+
39
+ voxel.transform.localScale = this._voxelScale;
40
+
41
+ if (count < i)
42
+
43
+ {
44
+
45
+ Debug.Log("Cube" + count);
46
+
47
+ count += 1;
48
+
49
+ i += 1;
50
+
51
+ voxel.name = "Cube" + count;
52
+
53
+ }
54
+
55
+
56
+
57
+ //重力を設定
58
+
59
+ rb = voxel.gameObject.AddComponent<Rigidbody>();
60
+
61
+ rb.isKinematic = true;
62
+
63
+ //結合先を設定
64
+
65
+ fixedJoint = voxel.AddComponent<FixedJoint>();
66
+
67
+ fixedJoint.connectedBody =voxel.GetComponent<Rigidbody>();
68
+
69
+
70
+
71
+
72
+
73
+ voxel.transform.SetParent(this.Parent);
74
+
75
+ }
76
+
77
+
78
+
79
+ 他にもfind(name)など調べ、追加してみたのですがうまくいきませんでした。
80
+
81
+ Unityが初めてで見当違いなことを言ってしまっていたり、変なコードを記述していたらすいません。
82
+
83
+ どうかよろしくお願いします。