Unity オブジェクト移動と鏡の作り方[コピペOK](所要時間5分)
私は、ゲームエンジンであるUnityについて勉強をしているます。
そこで、その過程で学んだことについてこれから記していこうと思う。
のちに自分でも見なおせるように・・・
オブジェクトをキーボードで移動させるスクリプト
キーボードの矢印キーに対応した方向に力を加え、オブジェクト(今回はSphere)を移動させるものです。
プロジェクトの+ボタンを押してC#スクリプトを作ってください。
スクリプト名は、ObjectControllerにしました。
次にスクリプトを開いて、MonoBehaviourクラスの中に下のスクリプトをコピぺして保存してください。
public Rigidbody A;
float x = 0;
float z = 0;
void Start()
{
A = GetComponent<Rigidbody>();
}
void Update()
{
if (Input.GetKey(KeyCode.LeftArrow))
{
x =-1.0f ;
A.AddForce(x, 0, z);
}
else if (Input.GetKey(KeyCode.RightArrow))
{
x =1.0f;
A.AddForce(x, 0, z);
}
else if (Input.GetKey(KeyCode.UpArrow))
{
z = 1.0f;
A.AddForce(x, 0, z);
}
else if (Input.GetKey(KeyCode.DownArrow))
{
z = -1.0f;
A.AddForce(x, 0, z);
}
}
もし、矢印キーでなく他のキーでオブジェクトを動かしたいなら(KeyCode.○)の丸の部分に以下のキーコードを入れてください。
下によく使うキーコードを載せておきます。
キーコード表
キー名 | キーコード |
A | A |
W | W |
S | S |
D | D |
バックスペース | Backspace |
ポーズ | Pause |
タブ | Tab |
エスケープ | Escape |
エンター | Return |
デリート | Delete |
クリア | Clear |
スペース | Space |
スクリプトを保存したら、動かしたいオブジェクトにスクリプトを張り付けてください。
Hierarchyビューに、もしくはSceneビューに直接アタッチしてください。
また、オブジェクトに力を加えるためには、動かしたいオブジェクトにRigitbodyを付け加えてください。
Rigitbodyをつけるには、Inspectorビューで、AddComponent→Physics→Rigitbodyの順で選択してください。
ちなみに、Use Gravityにチェックを入れると重力の影響も受けるようになります。
最後にInspectorビューのスクリプトにあるAの部分に動かしたいオブジェクトをくっつけてください。
これで完成したはずです。
周囲を映す鏡の作り方
手順
鏡としたいオブジェクトを作成してください。
次にオブジェクトにアタッチするmaterialを作ってください。
そして今回は鏡と似た質感を表現するためにMetallicとSmoothnessを1にしました。
次に、HierarchyビューでReflection Proveを作ってください。
Reflection Proveは +ボタン→Light→Reflection Proveを選択すれば作成できます。
そしてそれを、オブジェクトと重ねてください。
Reflection ProveのTypeでは、BakedとRealtimeを覚えておけばいいと思います。
Bakedは事前にオブジェクトからみた周囲の情景をオブジェクトに反映します。
一方Realtimeはそれを再生中に随時行います。
Bakedは、再生中に周囲が変化しても、その変化を反映することはできませんが、Realtimeに比べて処理がかなり軽いです。
最後に、反映するオブジェクトを指定します。
反映したいオブジェクトを選択し、Inspectorビュー一番右上の▽(staticの右)を選択し、Everythingを選択します。
これをしないと、そのオブジェクトは鏡に映りません。
以上です。
他の記事
Unity オブジェクトを光らせる・シーンの変更方法[コピペOK](各所要時間4分)
Unity シューティングゲーム プレイヤー移動と弾の実装・生成[コピペOK](所要時間5分)