※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

  • スワイプした方向にグリグリ向くカメラ
  • スワイプしたらグリっと一定量だけ動くカメラ
  • ビューポイントレクタングル

  • スワイプした方向にグリグリ向くカメラ

まずは画面をつついた場所を向く
考え方としてはCameraTargetというオブジェクトがあって、メインカメラは常にそれを見ている。
カメラを動かすのではなくてCameraTargetを動かしてグリグリする、というイメージ。

private function initValue(){
MainCamera = GameObject.Find("MainCamera").GetComponent(Camera);
    CameraTargetPos = GameObject.Find("CameraTarget").transform.localPosition;

    CameraTargetPos.x = 0.0f;
    CameraTargetPos.y = 1.0f;
    CameraTargetPos.z = 0.0f;
}

function Update(){
MainCamera.transform.rotation = Quaternion.Slerp(MainCamera.transform.rotation, Quaternion.LookRotation(Vector3(CameraTargetPos.x, CameraTargetPos.y, CameraTargetPos.z) - MainCamera.transform.position), 0.1f);        
    if (Input.GetMouseButton(0)){
        MousePos = Input.mousePosition;
        MousePos.z = -10.0f;
        CameraTargetPos.x = MainCamera.ScreenToWorldPoint(MousePos).x * -1.0;
        if(CameraTargetPos.x <= -5.0f) CameraTargetPos.x = -5.0f;
        if(CameraTargetPos.x >= 5.0f) CameraTargetPos.x = 5.0f;
    }
}
 

  • スワイプしたらグリっと一定量だけ動くカメラ

スワイプ開始時のX位置とスワイプ終了時のX位置からどっちの方向にスワイプされたか検出可能。
このサンプルではやってないけど絶対値でスワイプ量を算出できるからカメラをずいっと動かすこともできそう。

var SwipeStartPos : float = 0.0;
var SwipeEndPos : float = 0.0;
var CameraTargetPos : Vector3;
private var MainCamera : Camera;
MainCamera = GameObject.Find("MainCamera").GetComponent(Camera);
var MousePos : Vector3;

MainCamera.transform.rotation = Quaternion.Slerp(MainCamera.transform.rotation, Quaternion.LookRotation(Vector3(CameraTargetPos.x, CameraTargetPos.y, CameraTargetPos.z) - MainCamera.transform.position), 0.1f);        
    if (Input.GetMouseButtonDown(0)){
        MousePos = Input.mousePosition;
        MousePos.z = -10.0f;
        SwipeStartPos = MainCamera.ScreenToWorldPoint(MousePos).x;
    }
    if (Input.GetMouseButtonUp(0)){
        MousePos = Input.mousePosition;
        MousePos.z = -10.0f;
        SwipeEndPos = MainCamera.ScreenToWorldPoint(MousePos).x;

            if (SwipeStartPos > SwipeEndPos){
                CameraTargetPos.x -= 3.0f;
            }else if (SwipeStartPos < SwipeEndPos) {
                CameraTargetPos.x += 3.0f;
            }
            SwipeStartPos = 0;
            SwipeEndPos = 0;    
    }
 

  • ビューポイントレクタングル

サブカメラ等で画面はめ込みを使う場合
CameraプロパティのViewport Rectを調整する。

x:0 y:0.25
w:1.0 h:0.5


x:0 y:0.25
w:0.5 h:0.5



x:0.25 y:0.25
w:0.5 h:0.5


x:0.5 y:0.25
w:0.5 h:0.5