Unity(2018)の2Dで開発をしております。
ParentConstraintのスクリプトでの制御で行き詰ってしまいました。
やりたいことは以下の通りです。
①追従の基となるオブジェクトAをプレハブより生成する(Aにはaという子が付いている)。
GameObject ObjA = (GameObject)Instantiate (A, Position, Quaternion.identity);
②追従するオブジェクトBをプレハブより生成する。(Bは生成される前からParentConstraint(親子制約)のコンポーネントを持っている)
GameObject ObjB = (GameObject)Instantiate (B, Position, Quaternion.identity);
③BをオブジェクトCの子にする。
ObjB.transform.parent = ObjC.transform;
④BのParentConstraint(親子制約)の制約設定のソースにaを代入
ここがわかりません!
①~③までは何とか乗り越えることができたのですが,④がうまくいきません。
画像の赤く囲った部分にスクリプト上で宣言したいのですがその方法を教えて下さい。
以下のサイトを参考にしたのですが理解ができませんでした。
https://qiita.com/Akematty/items/04fadac40f7ea45fd5ab
④のところで,自分でやってみたのは,
//オブジェクトBのParentConstraintコンポーネントを取得
ParentConstraint myParentConstraint = ObjB.GetComponent<ParentConstraint>();
//ソースを宣言
ConstraintSource myConstraintSource;
//sourceTransformをオブジェクトAのtransformを代入←ここでエラー
myConstraintSource.sourceTransform = ObjA.transform;
//オブジェクトBのParentConstrainにソースを追加←これもエラー
myParentConstraint.AddSource(myConstraintSource);
以上のようなことをやってみましたがエラーでした。
エラーの内容は次の通りです。
Assets/ConstraintScript.cs(34,4): error CS0165: Use of unassigned local variable `myConstraintSource'
リファレンスを見る限り,
ParentConstraint.AddSource(source)
となっているので,.AddSource(source)の括弧の中に入れるのはsource型?なのか…と思い,ソースの型を宣言。
.sourceTransformというのが,画像の赤四角で囲んだ部分だと思いオブジェクトAのtransformを代入しました。
しかしエラーが出ました…。このあたりが理解しきれていません。
そもそも,画像の赤四角で囲んだ部分の値をスクリプトから代入するのはAddSourceなのか…というのが1つの疑問です。
もし,AddSourceであるならば,そこに何を入れたらよいのかわからない…というのが2つ目の疑問です。
やってることが滅茶苦茶かもしれませんが,なにとぞよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー