Unity オブジェクトを動かす Rigidbody編 [v5.5.0f3]
まずはオブジェクトを生成してみましょう
Unityにおいてオブジェクトを作り出すのはとても簡単です
- Hierarchyエリアを右クリック => 3D Objectを選択
-
ゲーム画面に出したいオブジェクトを選択(今回はCube)
これで、立方体が生成されます
ここで作成したCubeのステータスの説明です
UnityではInspectorがオブジェクトのステータスを表示してくれます
①Transform
Position オブジェクトのある位置
Rotation オブジェクトの回転位置
Scale オブジェクトの大きさ
②Cube(Mesh Filter)
Mesh この項目は3Dオブジェクトを生成する上でな くてはならないものになります
簡単に言うとMeshとは、型紙のようなものです
なので、形を変えたければこれをいじれば根本的な形が変わります
③Box Collider
Is Trigger => チェックをつけることにより、物理演算をしなくなる
Material => 物理演算にこちらの好きな機能を追加するために追加する項目(追加しない場合普通の物理演算)
Center => コライダーのローカル座標を指定
Size => コライダーの大きさを指定
④Mesh Renderer
Cast Shadows => ライトによる影の有無
Receive Shadows => 影を表示するか
Motion Vectors => レンダリング時にどれをメインにレンダリングするか
Materials => モデルと一緒にレンダリングするマテリアルのリスト
以下のものは使うときに随時説明します
Rigidbody
前回作ったtestのスクリプトを使用してオブジェクトを動かす処理を書いていきます
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//Rigidbodyの種類別動き
public class test : MonoBehaviour {
Rigidbody RB;//Rigidbodyの入れ物
Vector3 GO;//最初の位置
void Start () {
RB = GetComponent<Rigidbody>();//CubeにアタッチされてるRigidbodyを取得
GO = this.gameObject.transform.position;//最初の位置を取得
}
void Update () {
//元の位置に戻す
if (Input.GetKeyDown(KeyCode.Space))//1で動く
transform.position = GO;
//velocity
//速度の変更する移動
if(Input.GetKeyDown(KeyCode.Alpha1) )//1で動く
RB.velocity = Vector3.forward * 0.1f;
//position
//位置を変更する移動
if (Input.GetKeyDown(KeyCode.Alpha2))//2で動く
RB.position = Vector3.forward * 0.1f;
//----------------AddForece-----------------
//力を加える
if (Input.GetKeyDown(KeyCode.Alpha3))//3で動く
RB.AddForce(Vector3.forward * 0.1f);
//Mode Force = 継続的な力
if (Input.GetKeyDown(KeyCode.Q))//Qで動く
RB.AddForce(Vector3.forward * 0.1f, ForceMode.Force);
//Mode Impulse == 瞬間的な力
if (Input.GetKeyDown(KeyCode.W))//Wで動く
RB.AddForce(Vector3.forward * 0.1f, ForceMode.Impulse);
//Mode VelocityChange == 瞬間的な力(質量無視)
if (Input.GetKeyDown(KeyCode.E))//Eで動く
RB.AddForce(Vector3.forward * 0.1f, ForceMode.VelocityChange);
}
}
まずは、こちらのスクリプトをコピペして動かしてみてください
うごかないと、いう方は
http://ux.getuploader.com/Unity_gameddd/download/1/New+Unity+Project.zip
こちらからダウンロードしていただければ動かせると思います
Unity Script作成&編集&デバッカー切り替え[v5.5.0f3]
Unityでゲームを作りたい場合は絶対的にスクリプトというものを書かなければいけません
UnityではC#、javascriptの言語を使ってスクリプトを書くことができます
今回は、スクリプトの作成と、編集ソフトについて説明します
スクリプト作成
1.画像のピンクのエリアを右クリック
2.Create => C# Script
このような物が作成されていれば成功です
後は、そのスクリプトがわかりやすいように名前を変えてください
*スクリプトの名前は基本的には半角英数字なら、大丈夫なのですが日本語を使ってしまうと、エラーの原因になるので日本語は基本的にNGです
Scriptの名前変更の注意点
scriptの名前を今のから変えたいから変えよーと思い、scriptの名前を変えたら確認してほしいのが
この赤枠の名前の部分です
これが違うと絶対エラーをはきます!名前を変えた際はこちらの確認をお忘れなく!
Visual Studio と MonoDevelop
さあ!いざ書くぞ!
と、なったときにまずは先ほど作成したスクリプトをダブルクリックします
ここで2通りの人がいると思います
1.MonoDevelopが開いた人
2.VisualStudioが開いた人(こちらはあまりいないかも?)
1.MonoDevelop
Unityにはインストール時にMonoDevelop(以後Mono)というソフトがインストールできるけどしますか?と聞いてきます
そこで、Monoをインストールしていた人は
このような画面が開いたと思います
Monoの特徴としては
・あからさまな、ミスは赤い波線で教えてくれます
・それ以外に動かさないとわからないようなエラーは、左上の再生ボタンのようなものを押すと、一度動いて確認してくれます
・再生ボタンを押した状態でUnityでゲームを再生してしまうとかなり重くなります
必ず、もう一度押して再生をとめてからUnityを動かしてください
(スクリプトを2つのソフトを同時に二つ動かしている状態)
2.VisualStudio
こちらはもともとVisualStudioがインストールしてあり、かつ追加でUnity用のデータもインストールしている人だと思います
VisualStudioインストールしてるのにMonoが起動した人は追加でUnity用のデータを入れていないからだと思います
こちらからお使いのVisualStudioのバージョンにあったものをダウンロードしてインストールしてみてください
https://msdn.microsoft.com/ja-jp/dn833194.aspx
そして、開いたら
このような画面が開けば導入成功です
VisualStudioの特徴としては
・基本的なエラーの元になるものは赤い波線で教えてくれます
・Ctl+Sで保存しないとUnity側に反映されないので注意
・動作が比較的軽い(私の体感です)
デバッカーの切り替え
- Edit => Preferences
- External Tools => External Script Editor
これで変更可能です
Unity プロジェクト作成 [v5.5.0f3]
Unityで自分の作りたいゲームを作り始める段階までの前準備
Unityを起動するとこのような画面になります[ver.5.5.0f1現在]
↓
①Project name ・・・ここでは、Unityプロジェクトを作成した時にできるファイルの 名前を決定します
②Location ・・・作成したファイルの保存場所を指定します
枠の右端の・・・をクリックすれば保存場所を確認しながら選択 できます
③Organization ・・・この項目はUnity5.5.0から追加されました
Unity5.5.0では、いくつかのサービスが結合されたので、それを 使うために指定します
ここはいじらなくても大丈夫です
④3D or 2D ・・・3Dゲームを作りたいか、2Dゲームを作りたいかを選択します