Unityを初めて1週間の人に読んでほしいC#のQ&A
▶
【Unity】3Dアクションゲームを作ろう!#7 ステージの作成(Skybox・落下判定)
▶
【Unity】3Dアクションゲームを作ろう!#8 ステージの作成(スイッチ・扉)
▶
【Unity】3Dアクションゲームを作ろう!#9 プレイヤーのHP管理
▶
【初心者Unity】JsonUtilityクラスでJSONを扱う方法
▶
【初心者Unity】スクリプトからコンポーネントを追加する方法
Unityを初めて1週間の人に読んでほしいC#のQ&A
何かが解決できない時の確認用に(随時追加予定)
※ 元ネタは実際に生徒からよく受ける質問が多め。
[Unity_317×90]
Q:C#スクリプトはどうやって作ればいいの?
A:プロジェクトビューで右クリックして、Create → C# Script
Q:エラーは出てないのにスクリプトをゲームオブジェクトにアタッチできない!
A:スクリプトに書かれてるクラス名とファイル名が違う可能性あり。
大文字小文字も含めて一致させましょう。
Q:スクリプトからコンポーネントを取得したい
A:gameObject.GetComponent<コンポーネント名>(); で、そのスクリプトがアタッチされたゲームオブジェクトのコンポーネントを取得できます。
このとき「gameObject.」の部分は省略可。
※ 原則は「ゲームオブジェクト.ゲットコンポーネント」と覚えておくと↓のケースで迷わないで済むかも。
Q:スクリプトから別のゲームオブジェクトのコンポーネントを取得したい
A:まずは目当てのゲームオブジェクトを取得しましょう。
ゲームオブジェクトは GameObject.Find(“ゲームオブジェクト名”) で検索取得できます。
(変数を宣言してゲームオブジェクトを格納しておくなどもっとパフォーマンスの良い方法もありますが、変数とかよくわからんって人はひとまずこれ)
最終的には、GameObject.Find(“ゲームオブジェクト名”).GetComponet<コンポーネント名>()で、スクリプトがアタッチされているゲームオブジェクトとは別のゲームオブジェクトのコンポーネントが取得できます。
Q:コンポーネントが取得できたら何ができるの?
A:コンポーネントが取得出来ると、そのコンポーネントの各プロパティが参照できます。
例えばTransformならpositionやrotationなどの値が取得できる感じですね。
プログラムからコンポーネントを取得すると、インスペクターで表示されているプロパティだけでなく、コンポーネントが内部で保持しているプロパティも参照できたりします。
(例えばRigidbodyのvelocityなどは、インスペクターには表示されていませんが非常に利用頻度の高いプロパティです。)
▶
【Unity】3Dアクションゲームを作ろう!#7 ステージの作成(Skybox・落下判定)
▶
【Unity】3Dアクションゲームを作ろう!#8 ステージの作成(スイッチ・扉)
▶
【Unity】3Dアクションゲームを作ろう!#9 プレイヤーのHP管理
▶
【初心者Unity】JsonUtilityクラスでJSONを扱う方法
▶
【初心者Unity】スクリプトからコンポーネントを追加する方法
ゲーム制作関連のオススメ連載リンク
とっても手軽なゲーム制作体験!
Unityゲーム開発基礎
実際のリリースゲームを題材にしたハンズオンゲーム制作連載
実践unityゲーム開発