未分類

制作中のゲームの話 <Prefabsの設定>

投稿日:

はじめに

皆さんこんにちは!今回は制作中のゲーム制作でつまづいてしまった原因の一つであるPrefabsについてどう解決したのかを書きたいと思います。

Prefabsとは

Prefabsとは何回も使いまわしできるオブジェクトのことを指します。Prefabsはゲームオブジェクトではないことを理解していないと今回みたいな失敗をしてしまいます。

スクリプトをアタッチするには

prefabsは生成できたはいいのですが何故かスクリプトのアタッチがこのように外れてしまっています。

これでは生成されたprefabsのスクリプトが動きません。

これらを解決するにはInspetorクラスのオブジェクトをPrefab化して追加することと、コードを追加してアタッチされるようにしましょう。

GameObject A = Instantiate(hoge) as GameObject;
A.AddComponent<hoge>();

コードの内容は1行目はインスタンスクラスを作りprefabを生成。
2行目はコンポーネントを追加する「AddComponent」をしています。
これでスクリプトをアタッチできました!

なぜ設定した座標通りにいかないのか

これは単純な話で生成した風船が設定した座標に作られなかったのかというと3D空間の座標とScreen座標で分けられているからでした。前者は世界の中心からXYZを基準にした座標でScreen座標は位置やカメラサイズに依存するUIの座標です。

アニメーションで設定されたScreen座標

これを3D空間のWorldspace座標に直すと大体X:20 Y:30 Z:60ぐらいで生成したい場所に作ることができました。これはスクリプトで変換もできます。

Vector3 CreatePoint = new Vector(x,y,z);

これで座標を変換できました!解決!やったね

以上です!

-未分類

Copyright© ソフトウェア工房 , 2019 All Rights Reserved Powered by AFFINGER5.