2017年06月28日
【unity5】カメラ移動・回転させる方法
はじめに
さて、unity5を使ってカメラアングルを変えたり、回転させる方法を紹介します。
今回からはARPG製作に入ります。
ただ、完全にARPGを作っていても面白くないのでたまに関係ない記事出します。
まあ、カテゴリーは別にするのでゲーム開発に支障はないと思いますが。
プログラミングが分からない、という方はこちらからからご覧下さい。
unityでのプログラミング基礎知識 1
さてさて、
ARPGはアクションロールプレイングゲームの略、というのを
どこかで話した気がします。
「アクション」と付いているからには操作性は大切ですよね。
と言いつつも、そんなガチでは作りません。
そんな事していたら、このシリーズとても長くなってしまいます(笑)
大体、10〜20記事程度でやっていきたいと思います。
プログラミングの基礎を交えながら、という感じですねー。
まぁ所詮、高校生 + 独学の組み合わせですので、
改善点があればコメントでご指摘お願いしますm(_ _)m
取り敢えず今回は、実際に動かすだけにしたいと思います。
今週はテストでして、疲れてます......。
まだ3日目が終わっただけです......。
あと2日...土曜日もテストなんですよねー......鬱です。
取り敢えず、第1回!
カメラのコントロール、スタート!
【スポンサードリンク】

カメラコントローラー
まず、一旦ソースコード(プログラム丸ごと)を載せます。
これをカメラに取り付けてtargetをドラック&ドロップだけで動きますよ(笑)
それでは、ぽん。
//使うシステムの宣言(?)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//クラス
public class CameraController : MonoBehaviour {
public Transform target;
public float distance = 12.0f;
public float xSpeed = 250.0f;
public float ySpeed = 120.0f;
public float yMinLimit = -45f;
public float yMaxLimit = 85f;
private float x = 0.0f;
private float y = 0.0f;
void Start () {
var angles = transform.eulerAngles;
x = angles.y;
y = angles.x;
}
void Update () {
if (target) {
x += Input.GetAxis("Mouse X") * xSpeed * 0.02f;
y -= Input.GetAxis("Mouse Y") * ySpeed * 0.02f;
y = ClampAngle(y, yMinLimit, yMaxLimit);
var rotation = Quaternion.Euler(y, x, 0);
var position = rotation * new Vector3(0.0f, 0.0f, -distance) + target.position;
transform.rotation = rotation;
transform.position = position;
}
}
static float ClampAngle (float angle, float min, float max) {
if (angle < -360) { angle += 360; }
if (angle > 360) { angle -= 360; }
return Mathf.Clamp(angle, min, max);
}
}
以上がソースになります。
これをコピーして、unity画面に戻ります。
「Project」で右クリック>Create>C# Script でスクリプトを作成します。
名前は「CameraController」として下さい。

この「スクリプト」というのに、プログラムを書いていくんです。
という訳で、作ったCameraControllerスクリプトを開いて記述済の文字を全部消し、上のソースコードを貼り付けます。

そしたら、保存してください。
Windowsの場合はCtrl + S で保存できます。
Macは持っていないのでよく分かりませんが......
左上の「ファイル」から保存出来ると思います。
Windowsでもできます。
(いま手元にパソコンが無いので確認できませんが......)
unity側に戻りまして、カメラがグルグルする支点を作りましょう。
ヒエラルキーのウィンドウで右クリック>3D Object>Capsule で作成します。

支点の作成は以上で、次は「Main Camera」を選択してください。
そしたらインスペクタの下の方に「Add Component」というボタンがあると思いますのでそこで「CameraController」と検索します。

出てきたスクリプトをカメラに追加し、スクリプトにtargetというものがあると思います。
そこの右側の空欄にヒエラルキーの「Capsule」をD&D(ドラッグ&ドロップ)します。

あとは、実行です!
上の方にある、「

実行されれば、カメラがカプセルの周りをマウスに合わせて動くと思います!
はい、出来ました!
という訳なので、今回はこの辺で。
解説は、次回に回したいと思います。
あーぁ、明日もテストだ......
ちなみに英語、保健、国語bです......
......頑張ってきます。
それでは皆さん、また次回。
【スポンサードリンク】


【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
この記事へのトラックバックURL
https://fanblogs.jp/tb/6417054
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック
※ ブログに表示されるのは、主の承認が必要なので時間がかかります!
コメントに気づかない場合もありますので、返信が遅れる場合も...