変数aにアタッチされていたオブジェクトは非表示だったので変数bの中にはfalseが入っています。, ↑自己紹介ページ ※「XR-Hub」商標出願中, // Start is called before the first frame update, //2つのDescriptionPanelでBackButtonが押されたときの処理, 【MagicLeap入門】MagicLeap Toolkitのサンプルシーンの使いどころを徹底解説!, 網膜投影型ARディスプレイの仕組み|透過型グラス(Hololens)との違いやメリット・デメリット. また、Open2アニメーションのLoop Timeのチェックも外しておきましょう(エンドレスを回避する為)。, WindowOnOffスクリプトのインスペクタで設定していたステータス画面ゲームオブジェクトとAnimatorControllerをStatsuWindow2に変更します。, UIの角度が変わったり色が変わったりでシンプルではありますが、少し演出が出来るようになりました。 ※実はこの後に出てくる表示や破壊よりも、これが一番大変だったりします。, オブジェクトを生成するといっても本当にゼロから生成する訳ではなくて、Prefab(プレハブ)として用意した素材テンプレートを、プロジェクトの中に取込んでオブジェクトとして生成する様なイメージになります。, 生成するオブジェクトはゼロから作る訳ではなくて、Prefab(プレハブ)データとして準備をしておきます。Prefabについてはこれまでに詳しく紹介をしていなかったので、Prefabの作り方を解説します。, まずはPrefab化するための素材を用意します。ここではSphereオブジェクトを素材にしますので、Sphereオブジェクトを作成しておきましょう。ちなみにSphereオブジェクトの色は黒っぽい色に変更しています。, さて、次にSphereオブジェクトをProjectウィンドウに表示されているフォルダの中にドラッグ&ドロップしてコピーします。, ドラッグをしたら、一度HierarchyウィンドウにあるSphereオブジェクトを削除しておきます。, 今度は先ほどとは逆にPrefabをProjectウィンドウからHierarchyウィンドウにドラッグしてみて下さい。, オブジェクトの生成というのは簡単に言うとこの操作をC#スクリプトから実行するだけです。, これはオブジェクトの生成に限らず、よく使う方法なのですが、プロジェクト全体(ゲーム全体と言ってもOK)を管理するオブジェクトを作っておきます。, 空っぽのオブジェクト生成して、C#スクリプトをアタッチしておき、そのオブジェクトからプロジェクト全体の管理を行うという考え方です。空っぽのオブジェクトは「GameObject」とデフォルトで命名されますが、よく「GameManager」という名前を付けられる事もあります。, 空っぽのオブジェクトを作るため、Hierarchyウィンドウ→Createボタン→Create Emptyをクリックして下さい。, これだけの操作で空っぽのオブジェクトが作成されます。これは画面上に表示されるオブジェクトではなくて、ゲーム全体を管理するためのオブジェクトになります。このオブジェクトにC#スクリプトをアタッチしてゲームを管理します。, Unityでオブジェクトを生成する場合はInstantiateというメソッドを使用するのが一般的です。Instantiateの使い方は簡単で引数としてPrefabを指定すれば、先ほど手動でPrefabをHierarchyウィンドウにドラッグした時と同じような処理を実施できます。, このC#スクリプトを先ほど作成した空っぽのオブジェクト「GameObject」にアタッチしてください。, アタッチをしたら、GameObjectをクリックしてInspectorウィンドウを見てみると、C#スクリプトのコンポーネントが設定されています。そして、スクリプトの中で変数として設定した「Obj」が表示されているはずです。, Public変数として定義した変数は、この様にコンポーネント上でアタッチできる様になります。ここに元々用意しておいたPrefab素材をアタッチします。, ゲームの実行ボタンを押してみましょう。Instantiateメソッドによって用意していたPrefabがゲーム画面上に生成されます。, この場合はボールのPrefabをゲーム画面上に無事生成できている事が分かると思います。, 次にUnityのC#スクリプトを使用してオブジェクトの表示・非表示を行う方法を解説します。, 表示・非表示の方法は非常に簡単で、先ほどの生成と同じ様にオブジェクト情報を取得して「表示・非表示」の命令を行うだけです。, 「オブジェクト情報取得」⇒「オブジェクトに命令」という流れは今後もよく使う事になると思います。, 先ほどゲームの管理オブジェクトを作って、そこから別のオブジェクトを生成するという事をしましたが、今回も先程と同じ管理オブジェクト(GameObject)を活用しましょう。, この管理オブジェクトにアタッチされているC#スクリプトに表示・非表示の命令文を記述したいと思います。, 今回は既に存在する別オブジェクトを操作するので、別オブジェクトの情報を取得して表示・非表示を行っていきます。, 非表示の方法から説明した方が分かりやすいので、まずはオブジェクトを非表示にする方法から紹介します。, 先程オブジェクトを生成したものとは別にSphereオブジェクトを手動で作成しました。今回は青いボールにしました。このオブジェクトに対して、まずは手動で非表示にする方法から知っておきましょう。SphereオブジェクトのInspectorウィンドウを見てみると、一番上にチェックボックスがあると思います。, 先程オブジェクトを生成した時にGameObjectにC#スクリプトをアタッチしていると思うので、ここにコードを追記しましょう。, ■メソッド(Instantiateの下に記述すればOK)※ちなみに、Instantiateは一旦コメントアウトしています。, 上記のコードを追記した状態で、新たに作成したオブジェクトをGameObjectの変数(obj2)にアタッチして設定します。設定方法は先程と全く同じです。分からない!という場合はオブジェクトの生成の流れをもう一度確認してみてください。, オブジェクトが非表示になっている事が分かると思います。また、SphereオブジェクトのInspectorウィンドウを見てみるとチェックがOFFになっているはずです。, 上記で非表示の流れが分かっていれば表示をするのは全然簡単です。先程とは逆の事をするだけですので。, 今度はオブジェクトを手動で非表示にしておきましょう。非表示にする場合はInspectorウィンドウのチェックをOFFにすればOKです。, 非表示にする時はSetActive(false);と記述しましたが、表示にする場合はSetActive(true);と書き換えてあげます。, 既にアタッチされているコードを書き替えているので、このまま実行すればオブジェクトが表示される様になります。, 実際にコード書いてみると分かりますが、SetActiveに渡す変数を切り替えるだけで表示・非表示の命令を行う事ができます。, 上述している通り、まずオブジェクトの情報を取得して、破壊する命令を与えてあげればOKです。先ほどオブジェクトを表示・非表示した先に使用したSphereオブジェクトとC#スクリプトをここでも活用します。, 破壊対象はSphereオブジェクトになります。Sphereオブジェクトが存在する事を確認しましょう。, どのメソッドも対象となるオブジェクトを管理オブジェクトの変数として設定しておく必要になりますので、その点だけ注意が必要です。この考え方は制作過程で必ず必要になります。, Unityの操作ツールを使ってオブジェクトを移動、拡大・縮小、回転する方法を解説!, Unityの当たり判定はコライダーとリジッドボディで実現可能!3Dのボールで使い方を解説!, 次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。, 人気ゲーム開発エンジンのUnityの使い方を学んで、ゲーム開発を行う基本的な流れを紹介しています。, 3Dのボールを使って簡単なゲームアニメーションを作成しています。3DのボールはSphereオブジェクトで作成しているので、Sphereオブジェクトの作り方や色を塗る方法も紹介しています。, Prefab(プレハブ)として用意した素材テンプレートを、プロジェクトの中に取込んでオブジェクトとして生成する様なイメージ, Projectウィンドウに表示されているフォルダの中にドラッグ&ドロップしてコピーします。, ProjectウィンドウからHierarchyウィンドウにドラッグしてみて下さい。, Public変数として定義した変数は、この様にコンポーネント上でアタッチできる様になります。, Unityで3Dのボールが落下&転がる簡単ゲーム作成!コンポーネントの使い方が肝心!, Unityのアセットストア(Asset store)の使い方|ダウンロード&インポート手順!. C#スクリプトからオブジェクトを操作する方法についても理解を深めていきましょう。, まずはUnityのC#スクリプトを使用してオブジェクトを生成する方法から解説します。