「カメラ」の編集履歴(バックアップ)一覧はこちら
「カメラ」(2016/08/15 (月) 14:06:52) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
<ul><li>ドラッグした方向にグリグリ向く</li>
<li>ビューポイントレクタングル</li>
</ul><hr /><ul><li>
<h2>ドラッグした方向にグリグリ向く</h2>
</li>
</ul><p>まずは画面をつついた場所を向く<br />
考え方としてはCameraTargetというオブジェクトがあって、メインカメラは常にそれを見ている。<br />
カメラを動かすのではなくて<span style="line-height:20.8px;">CameraTargetを動かしてグリグリする、というイメージ。</span><br /><br />
private function initValue(){<br /><span style="line-height:1.6em;">MainCamera =
GameObject.Find("MainCamera").GetComponent(Camera);<br />
CameraTargetPos =
GameObject.Find("CameraTarget").transform.localPosition;</span><br /><span style="line-height:1.6em;"> CameraTargetPos.x = 0.0f;</span><br /><span style="line-height:1.6em;"> CameraTargetPos.y = 1.0f;</span><br /><span style="line-height:1.6em;"> CameraTargetPos.z = 0.0f;<br />
}</span></p>
<p>function Update(){<br />
MainCamera.transform.rotation = Quaternion.Slerp(MainCamera.transform.rotation,
Quaternion.LookRotation(Vector3(CameraTargetPos.x, CameraTargetPos.y,
CameraTargetPos.z) - MainCamera.transform.position), 0.1f); <br />
if (Input.GetMouseButton(0)){<br />
MousePos = Input.mousePosition;<br />
MousePos.z = -10.0f;<br />
CameraTargetPos.x = MainCamera.ScreenToWorldPoint(MousePos).x *
-1.0;<br />
if(CameraTargetPos.x <= -5.0f) CameraTargetPos.x = -5.0f;<br />
if(CameraTargetPos.x >= 5.0f) CameraTargetPos.x = 5.0f;<br />
}<br /><span style="line-height:20.8px;">}</span><br />
</p>
<ul><li>
<h2>ビューポイントレクタングル</h2>
</li>
</ul><p>サブカメラ等で画面はめ込みを使う場合<br />
CameraプロパティのViewport Rectを調整する。<br /><img alt="" src="//www63.atwiki.jp/katzmier?cmd=upload&act=open&pageid=13&file=002c.png" style="line-height:20.7999992370605px;" /><br style="line-height:20.7999992370605px;" /><span style="line-height:20.7999992370605px;">x:0 y:0.25</span><br style="line-height:20.7999992370605px;" /><span style="line-height:20.7999992370605px;">w:1.0 h:0.5</span><br /><br /><img alt="" src="//www63.atwiki.jp/katzmier?cmd=upload&act=open&pageid=13&file=002a.png" /><br /><span style="line-height:20.7999992370605px;">x:0 y:0.25<br />
w:0.5 h:0.5</span><br /><br /><img alt="" src="//www63.atwiki.jp/katzmier?cmd=upload&act=open&pageid=13&file=002b.png" /><br /><span style="line-height:20.7999992370605px;">x:0.25 y:0.25</span><br style="line-height:20.7999992370605px;" /><span style="line-height:20.7999992370605px;">w:0.5 h:0.5</span><br /><br /><img alt="" src="//www63.atwiki.jp/katzmier?cmd=upload&act=open&pageid=13&file=002e.png" /><br /><span style="line-height:20.7999992370605px;">x:0.5 y:0.25</span><br style="line-height:20.7999992370605px;" /><span style="line-height:20.7999992370605px;">w:0.5 h:0.5</span><br style="line-height:20.7999992370605px;" /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
</p>
<ul><li>スワイプした方向にグリグリ向くカメラ</li>
<li>スワイプしたらグリっと一定量だけ動くカメラ</li>
<li>ビューポイントレクタングル</li>
</ul><hr /><ul><li>
<h2><span style="line-height:20.8px;">スワイプ</span>した方向にグリグリ向く<span style="line-height:20.8px;">カメラ</span></h2>
</li>
</ul><p>まずは画面をつついた場所を向く<br />
考え方としてはCameraTargetというオブジェクトがあって、メインカメラは常にそれを見ている。<br />
カメラを動かすのではなくて<span style="line-height:20.8px;">CameraTargetを動かしてグリグリする、というイメージ。</span><br /><br />
private function initValue(){<br /><span style="line-height:1.6em;">MainCamera =
GameObject.Find("MainCamera").GetComponent(Camera);<br />
CameraTargetPos =
GameObject.Find("CameraTarget").transform.localPosition;</span><br /><span style="line-height:1.6em;"> CameraTargetPos.x = 0.0f;</span><br /><span style="line-height:1.6em;"> CameraTargetPos.y = 1.0f;</span><br /><span style="line-height:1.6em;"> CameraTargetPos.z = 0.0f;<br />
}</span></p>
<p>function Update(){<br />
MainCamera.transform.rotation = Quaternion.Slerp(MainCamera.transform.rotation,
Quaternion.LookRotation(Vector3(CameraTargetPos.x, CameraTargetPos.y,
CameraTargetPos.z) - MainCamera.transform.position), 0.1f); <br />
if (Input.GetMouseButton(0)){<br />
MousePos = Input.mousePosition;<br />
MousePos.z = -10.0f;<br />
CameraTargetPos.x = MainCamera.ScreenToWorldPoint(MousePos).x *
-1.0;<br />
if(CameraTargetPos.x <= -5.0f) CameraTargetPos.x = -5.0f;<br />
if(CameraTargetPos.x >= 5.0f) CameraTargetPos.x = 5.0f;<br />
}<br /><span style="line-height:20.8px;">}</span><br />
</p>
<ul><li>
<h2>スワイプしたらグリっと<span style="line-height:20.8px;">一定量だけ動くカメラ</span></h2>
</li>
</ul><p>スワイプ開始時のX位置とスワイプ終了時のX位置からどっちの方向にスワイプされたか検出可能。<br />
このサンプルではやってないけど絶対値でスワイプ量を算出できるからカメラをずいっと動かすこともできそう。<br /><br />
var SwipeStartPos : float = 0.0;<br />
var SwipeEndPos : float = 0.0;<br />
var CameraTargetPos : Vector3;<br />
private var MainCamera : Camera;<br />
MainCamera = GameObject.Find("MainCamera").GetComponent(Camera);<br />
var MousePos : Vector3;<br /><br />
MainCamera.transform.rotation = Quaternion.Slerp(MainCamera.transform.rotation,
Quaternion.LookRotation(Vector3(CameraTargetPos.x, CameraTargetPos.y,
CameraTargetPos.z) - MainCamera.transform.position), 0.1f); <br />
if (Input.GetMouseButtonDown(0)){<br />
MousePos = Input.mousePosition;<br />
MousePos.z = -10.0f;<br />
SwipeStartPos = MainCamera.ScreenToWorldPoint(MousePos).x;<br />
}<br />
if (Input.GetMouseButtonUp(0)){<br />
MousePos = Input.mousePosition;<br />
MousePos.z = -10.0f;<br />
SwipeEndPos = MainCamera.ScreenToWorldPoint(MousePos).x;</p>
<p> if (SwipeStartPos > SwipeEndPos){<br />
CameraTargetPos.x -= 3.0f;<br />
}else if (SwipeStartPos < SwipeEndPos) {<br />
CameraTargetPos.x += 3.0f;<br />
}<br />
SwipeStartPos = 0;<br />
SwipeEndPos = 0; <br />
}<br />
</p>
<ul><li>
<h2>ビューポイントレクタングル</h2>
</li>
</ul><p>サブカメラ等で画面はめ込みを使う場合<br />
CameraプロパティのViewport Rectを調整する。<br /><img alt="" src="//www63.atwiki.jp/katzmier?cmd=upload&act=open&pageid=13&file=002c.png" style="line-height:20.7999992370605px;" /><br style="line-height:20.7999992370605px;" /><span style="line-height:20.7999992370605px;">x:0 y:0.25</span><br style="line-height:20.7999992370605px;" /><span style="line-height:20.7999992370605px;">w:1.0 h:0.5</span><br /><br /><img alt="" src="//www63.atwiki.jp/katzmier?cmd=upload&act=open&pageid=13&file=002a.png" /><br /><span style="line-height:20.7999992370605px;">x:0 y:0.25<br />
w:0.5 h:0.5</span><br /><br /><img alt="" src="//www63.atwiki.jp/katzmier?cmd=upload&act=open&pageid=13&file=002b.png" /><br /><span style="line-height:20.7999992370605px;">x:0.25 y:0.25</span><br style="line-height:20.7999992370605px;" /><span style="line-height:20.7999992370605px;">w:0.5 h:0.5</span><br /><br /><img alt="" src="//www63.atwiki.jp/katzmier?cmd=upload&act=open&pageid=13&file=002e.png" /><br /><span style="line-height:20.7999992370605px;">x:0.5 y:0.25</span><br style="line-height:20.7999992370605px;" /><span style="line-height:20.7999992370605px;">w:0.5 h:0.5</span><br style="line-height:20.7999992370605px;" /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
</p>