Unityに関連する記事です

 生成用のゲームオブジェクトのプレハブとマテリアルを作成し、それらをスクリプトを利用して処理と処理とを繋げて1つの機能として実装していきます。

 下記の動画が完成動画になりますので、こちらのイメージを念頭に制作をおこなってください。


<実装動画 .椒織鵑魏,靴討垢阿卜イ后、 最小サイズで生成>
動画ファイルへのリンク


<実装動画◆,靴个蕕ボタンを押してから離す → サイズが変わっていく>
動画ファイルへのリンク


<実装動画 ボタンを押しっぱなしにして離さない → 一定時間後に強制的に最大サイズで確定>
動画ファイルへのリンク



マテリアルの作成


 半透明のマテリアルと、生成後に利用するマテリアルの2つを作成します。

 Project 内に Materials フォルダを作成してから、メニューより、 Create → Material で作成します。
名称も任意ですが、わかりやすい名前にしておくといいでしょう。


<フォルダ画像>




 半透明のマテリアルは、Rendering Mode を Transparent に設定してください。
また Albedo の Color の Alpha を 0 に設定してください。


<半透明のマテリアル>
インスペクター画像  柴明ー



インスペクター画像◆ 漆Г離▲襯侫, 0 にするー




 もう1つのマテリアルには制限はありません。
生成後に色づけるために利用しますので、任意の色、あるいはテクスチャを指定してください。


<生成後に利用するマテリアル>
インスペクター画像 ー色は何色でもー



 以上で設定は完了です。


プレハブの作成


 ヒエラルキーの空いている場所で右クリックをしてメニューを開き、3D → Cube を選択し、名前を Box に変更します。
MeshRenderer コンポーネント内の Materials に先ほど作成した、半透明のマテリアルをアサインします。

 その後、プレハブにしてください。事前に Prefabs フォルダを作成しておいて、そちらに作成するといいでしょう。


インスペクター画像



プレハブ時の編集モード画像




BoxMaterialChanger スクリプトの作成


 マテリアルの変更を行うためのスクリプトを作成します。
こちらのスクリプト内に定義した変数に、変更後のマテリアルを登録しておいて利用します。

 マテリアルの変更を行う処理をメソッドとして定義しておき、適切なタイミングで実行することでマテリアルの変更を行うように機能させます。


BoxMaterialChanger.cs

<= クリックすると開きます。


 スクリプトを作成したらセーブします。


BoxGenerator スクリプトの作成


 続いて、先程プレハブにした Box ゲームオブジェクトを生成するスクリプトを作成します。
こちらでは生成後のサイズの調整部分の制御も行います。

 まずはスクリプトを見ずに、どういった処理を組み立ててかんがえれば、サイズ変更のロジックとして構築できるかを考えてみてください。

 目標は以下の通りです。

 .椒織鵑魏,靴燭薀屮蹈奪を生成する。この時点ではマテリアルは半透明のため、サイズ確定前として扱う
 ▲椒織鵑鯲イ靴燭薀屮蹈奪のサイズを確定する。このタイミングでマテリアルを変更し、サイズ確定後として扱う
 ボタンを押している時間によって、ブロックのサイズが2段階(生成状態を含めると3段かい)に変化する
 ぅ椒織鵑魏,径海韻動貭蟷間が経過した場合は、強制的にサイズを最大サイズで確定し、マテリアルを変化させる

 このうち、マテリアルを変更する処理は先ほど作成したスクリプトで用意されていますので、
こちらについては、マテリアルを変更するメソッドを実行するタイミングについて考えてみてください。

 作りたい処理のイメージが固まってきたら、まずは日本語で作っていく処理を書きだしてみましょう。
そちらを元にプログラムを作成していくようにすると作りやすいです。


BoxGenerator.cs

<= クリックすると開きます。


 スクリプトを作成したらセーブします。


BoxGenerator ゲームオブジェクトを作成し、BoxGenerator スクリプトと BoxMaterialChanger スクリプトをアタッチして設定を行う


 ヒエラルキーの空いている場所で右クリックをしてメニューを開き、Create Empty で新しいゲームオブジェクトを作成します。
名前を BoxGenerator に変更し、先ほど作成した2つのスクリプトをアタッチします。


インスペクター画像




 どちらもアサイン情報を設定する必要がありますので、適宜な情報をアサインして登録します。


インスペクター画像(設定後)


 以上で設定は完了です。


ゲームを実行して動作を確認する


 すべての手順が完成しました。
いままでの実装内容を振り返りながら、どのような制御が行われるのかを確認してください
その上でゲームを実行してデバッグを行います。



 生成用のボタンを押してすぐに離してみてください。最小サイズでオブジェクトが生成されれば制御成功です。
生成の成否については、マテリアルが切り替わることで判断可能です。
もしも、生成したオブジェクトの色が半透明のマテリアルのままの場合、マテリアルの変更の制御が失敗しているので、そちらを見直してください。

 また、次の生成までの待機時間の設定がありますので、待機時間についても合わせて確認してください。
例えば待機時間が 1 秒あるのに、ボタン連打時で連続して生成されてしまうのであれば、それは制御できていないことになります。

 特にボタン系の操作においてはボタン連打されるケースを想定して操作を作るように心がけましょう。



 次に、しばらくボタンを長押してから離してください。押している時間に比例してサイズが変わっていき、生成されれば制御成功です。
こちらも生成時にマテリアルの切り替えが発生しますので、それを生成成功として判断してください。

 今回の場合には、初期サイズを抜かして、その後、2段階でサイズが変わります。
サイズ(初期)→サイズ□サイズとなります。どちらも試してください。



 最後に、ボタンを押しっぱなしにして離さないままにしてください。
一定時間後に強制的に最大サイズで確定し、オブジェクトが生成されてマテリアルの変更が行われます。
 


<実装動画 .椒織鵑魏,靴討垢阿卜イ后、 最小サイズで生成>
動画ファイルへのリンク


<実装動画◆,靴个蕕ボタンを押してから離す → サイズが変わっていく>
動画ファイルへのリンク


<実装動画 ボタンを押しっぱなしにして離さない → 一定時間後に強制的に最大サイズで確定>
動画ファイルへのリンク


 今回はデバッグする内容を書きだしていますが、自分でプログラムを考えて書いた場合には
こういったデバッグする内容や、正誤判定などもすべて自分で管理し、判断する必要があります

 ゲームは動けばよい、ではなくて、プログラムとして実装した処理が正常に動作しているかを確認することが大切です。



 以上でこの手順は終了です。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu



技術/知識(実装例)

2Dおはじきゲーム(発展編)

2D強制横スクロールアクション(発展編)

3Dダイビングアクション(発展編)

2Dタップシューティング(拡張編)

レースゲーム(抜粋)

2D放置ゲーム(発展編)

3Dレールガンシューティング(応用編)

3D脱出ゲーム(抜粋)

2Dリアルタイムストラテジー

2Dトップビューアドベンチャー(宴アセット使用)

3Dタップアクション(NavMeshAgent 使用)

2Dトップビューアクション(カエルの為に〜、ボコスカウォーズ風)

VideoPlayer イベント連動の実装例

VideoPlayer リスト内からムービー再生の実装例(発展)

AR 画像付きオブジェクト生成の実装例

AR リスト内から生成の実装例(発展)

private



このサイト内の作品はユニティちゃんライセンス条項の元に提供されています。

管理人/副管理人のみ編集できます