Unity3d。 Unity 3D学生からの教訓(B09-B12)

こんにちは

次のリンクで以前のレッスンを見つけることができます。
レッスンB01-B03
レッスンB04-B08




基本レッスン09-コンテンツの追加




このレッスンでは、マテリアルを使用してオブジェクトにテクスチャを追加する方法について説明します。

Unity3dでゲームオブジェクトを使用する場合、マテリアルも使用する必要があります。 たとえば、テクスチャを持つマテリアルをキューブに追加します。
B0900

テクスチャをダウンロードします(* .png、256px x 256px、98.4KB)。

最初に、テクスチャをAssetsフォルダ(プロジェクトのルートフォルダ)に保存します。

マテリアルディレクトリを追加し(プロジェクトで「階層的な順序」を維持することが常に便利であることを覚えています)、ファイルバルブテクスチャに名前を付けます(拡張子* .png(元のレッスン* .psd)、注を参照)。
B0901

Unity3dに戻り、テクスチャが含まれるマテリアルフォルダがプロジェクトビューに表示されることを確認します 。
B0902

キューブを作成します。 テクスチャをキューブに追加するには、 プロジェクトビューからキューブにドラッグするだけです(マテリアルは自動的に作成されます)。 ただし、事前に設定して、 [作成]-> [マテリアル]を選択することもできます。
B0903

それを電球と呼び、 Materialsフォルダに入れます。
B0904

buldを選択し、テクスチャをプロジェクトビューからインスペクタービューの空の灰色の正方形( none(Texture 2D)とラベル付け)に転送するか、同じ正方形内のすべて選択をクリックして表示されるリストから選択します。
B0905

灰色の正方形の代わりに、テクスチャ付きのアイコンが表示されます。
マテリアルをキューブにドラッグします。 キューブはすぐにテクスチャリングされます。
B0906

インスペクタービューでマテリアルを選択するとき、 シェーダーを選択することもできます。 シェーダーに従って、最終的な外観が計算されます
B0907
PS:シェーダーについては個別に説明しますが、後ほど説明します。

また、マテリアルはタイル(モザイクテクスチャ)として構成できます。 x番目またはy番目の座標のタイル値が大きいほど、対応する側でより多く繰り返されます。 これがどのように機能するかを理解するには、xとyの値を10に設定します(値が変更されると、キューブのテクスチャがリアルタイムで更新されます)。
B0908

オフセットパラメータは、テクスチャを「円形」にシフトします。 それがどのように機能するかをよりよく理解するには、試してみてください。



ご注意
Unity3dはPSDに加えて、次の形式のインポートもサポートしています。
TIFF、JPG、TGA、PNG、GIF、BMP、IFF、PICT。
他のテクスチャマッピングと同様に、テクスチャの辺が2のべき乗(128、256、512など)の場合、(パフォーマンスのために)最も効果的です。 ただし、テクスチャを2倍にする必要はありません(たとえば、256x512は許容可能なテクスチャサイズです)。




基本レッスン10-オーディオの基本





このレッスンでは、オーディオソースコンポーネント(オーディオリソース)を再生し、スクリプトを使用してサウンドクリップを呼び出す方法について説明します。

Unity3dでサウンドを操作するには、2つのコンポーネントが必要です。


通常、 AudioListenerはカメラのコンポーネントです。 カメラを選択し、 インスペクタービューで確認します。
b1000

サウンドを聞くには、各シーンに少なくとも1つのAudioListenerが必要です。

空のGameObjectを追加し、それにAudio Sourceコンポーネントを追加します。
b1001

インスペクタービューまたはスクリプトを使用して、オーディオクリップを追加できます。

プロジェクトには、モノラルとステレオの2つのオーディオファイルがあります。
b1002

モノラルは一般的に効果音に使用されます。 それだけのために、減衰または他の3D効果を使用できます。
音楽用のステレオ、それぞれ ステレオサウンドはそのまま暖まります。

[ プレビュー]ウィンドウで、選択したファイルを再生できます。
b1003

クリップ( GreenadeLaunch )をAudio Clipフィールドに追加します。 [ アウェイクで再生 ]オプションがオンの場合 、サウンドはシーンの開始直後に再生されます。
b1004

適切なタイミングで音声クリップを鳴らしたい場合は、スクリプトを作成する必要があります。 オーディオソースの [ オーディオクリップ]フィールドを空白のままにして、 PlaySoundsという名前のc#スクリプトを追加します。 次のコードをスクリプトに追加します。
//     public AudioClip myClip; void Start () { //    audio.PlayOneShot(myClip); } 


空のGameObjectにスクリプトを追加し、スクリプト内のmyClip変数の値をサウンドファイル( GreenadeLaunch )で初期化します。 今すぐ再生をクリックすると、再び音が聞こえます。

オーディオソースを使用せずにオーディオを再生できます。 Game SourceからAudio Sourceコンポーネントを削除し、 Start()メソッドの本文のコードを次のコードに置き換えます。
  AudioSource.PlayClipAtPoint(myClip, transform.position); 


ここで、 PlayClipAtPointはAudioSourceクラスの静的関数であり、対応するオーディオソース (この場合はmyClip )で新しいGameObjectを作成し、オーディオクリップを再生した後、このGameObjectを削除します。

スクリプトを保存し、 GameObjectにそれが含まれ ていることを確認します。myClipの値はGreenadeLaunchです。
b1006

[ 再生 ]をクリックし、シーンを読み込んだ直後に[ 一時停止 ]をクリックして、 One Shot Audioという名前の新しいゲームオブジェクトがシーンに表示されていることを確認します。
b1007



基本レッスン11-接続の基本




このレッスンでは、固定ジョイント(固定ジョイント)とヒンジジョイント(スイベルジョイント)を使用して、「建物破壊ボール」にチェーンを作成する方法について説明します。

Unity3dで興味深い物理学を作成するには、 「ジョイント」を使用します。 これを説明するために、建物を破壊するためのボールのモデルを作成します。

元のシーンには、平面度(床) 、カメラ(メインカメラ) 、および光源(点光源)が含まれています。
まず、球体を作成し、それにRigidbodyコンポーネントを追加して、それをBallと呼びます。
Rigidbodyを追加して、円柱をシーンに追加します。 下の図に、円柱と球のサイズと位置を示します。 円柱の場合、 スケールは0.15、0.25、および0.15で、それぞれx、y、およびzの場合、円柱はボールの「エッジ」に「巻き上げ」られます(エッジが交差します)。
b1100

球体と円柱を接続するには、球体(ボール)を選択し、それに固定ジョイントコンポーネントを追加します。 Connected Body変数を値Cylinder.rigidbodyで初期化します。 このために、 Cylinderを階層ビューからインスペクタービューのConnected Bodyの反対側のフィールドにドラッグするだけで十分であることを思い出させてください。
b1102

Cylinderの名前を、ボールを固定するのに適した名前( Ballstemなど)に変更します。 Connected Body変数の値は自動的に変更されます。
b1103

プレイを押すと、シリンダーが取り付けられた状態でボールがどのように落ちるかがわかります。
b1104

次に、チェーンの移動セクションの作成を始めましょう。
カプセルを作成します( Chain1と呼びましょう)。その寸法はボールステムの寸法に似ており、 カプセルのすぐ上に配置され、オブジェクトの端が交差するようにします。 Chain1はまた、 rigidbodyコンポーネントと一緒になります。
b1105

そして、 ボールステムにヒンジジョイントコンポーネントを追加します。
接続されたボディでは、 Chain1.rigidbodyを初期化します 。
固定位置はオレンジ色の矢印で示されています。
b1106

チェーンの別のセクションが必要です。 Chain1を選択して複製します( ctrl + Dまたはcmd + D )。 名前をChain2に変更し、またChain1の最上部に移動します。 Chain1に 、 ヒンジジョイントを追加します。
BodyをChain2.rigidbodyに 接続しました。
b1107

同様にChain3を追加します。

最後に、 HingeJointをChain3に追加し、 Connected Bodyの値を設定しません。 この場合、オブジェクトは「自分自身」(より正確には、シーンの空の場所)にアタッチされます。
b1108

ボール、ボールステム、チェーン1、チェーン2、チェーン3を選択し、それらを傾けます。
b1109

プレイをクリックして、チェーン付きボールの動きを確認します。





基本レッスン12-仮想軸を使用して入力する




このレッスンでは、矢印(矢印キー)を使用して、「軸」(軸)を使用して左右に移動する方法を説明します。

今回はステージ上に飛行機(床) 、カメラ(メインカメラ) 、光源(ポイントライト) 、空のgameObjectがあります。

別の入力オプションは、 「軸」(軸)の使用です。
入力マネージャーを開きます(編集->プロジェクト設定->入力) 。 軸を展開してから、 水平を展開します。
b1200

いくつかのデフォルトパラメータを見てみましょう。
パラメータ価値解説
負のボタン左負の方向に移動するためのキー
ポジティブボタンそうだねポジティブな方向に進むための鍵
Altネガティブボタンa負の方向に移動する代替キー
Alt正ボタンd正の方向に移動するための代替キー
種類キーまたはマウスボタン特定の軸に沿って移動するための入力タイプ(この場合はX)
軸X軸移動するオブジェクトの軸


この移動(水平)を使用するには、 InputクラスのGetAxis()メソッドが必要です。

小さなコメント
さらに、メソッドが静的であることを毎回示さないために、次の規則が導入されています。
  1. 「クラスメソッド」が記述されている場合、 静的であると見なされます。
  2. 「オブジェクトメソッド」が記述されている場合、メソッドは特定のオブジェクトに属します。



C#スクリプトを追加し、 GetAxis.csを呼び出して記述します。
  private float horiz; void Update () { horiz = Input.GetAxis("Horizontal"); Debug.Log(horiz); } 


空のgameObjectにスクリプトを追加し、[ 再生 ]をクリックします。 左/右矢印(またはa / d)を保持すると、 ステータスバーにhoriz変数の値がどのように変化するかが表示されます 。
b1201

この変数の値は、-1から1に変化します(押されたキーに依存)。 キーを放すとすぐに、 horizは再び0になります。

Debug.Log()の直後に、Update()に別のコード行を追加します 。
  transform.Translate(new Vector3(horiz, 0.0f, 0.0f)); 


シーンを実行して矢印をクリックします-gameObjectがX軸に沿って移動し始める様子がわかります。
b1202

Source: https://habr.com/ru/post/J145565/


All Articles