Entries

GetMouseButtonの部分をGetKeyに変えて

unityの入力テンプレをいじってみたり
マウスボタンが効かなくてもキーボード+マウス移動で多少はなんとかなるはず
…なればいいなぁ…
そもそも入力を受け付けるマウスと受け付けないマウスがあること自体がわけわからんのだけど…

追記
モーション変更ボタンつけてみたり。
あとはモーション変更ボタンが要らん時には格納されて
画面端にマウス置いたらシュインと出てくるように出来れば画面が狭くなることもないか
…ってところまではいいんだけど…
肝心のモザイクシェーダーが10万払わないと使えそうという検索結果が出てきてかなりテンションダウンしてたり
備え付けのトゥーンシェーダーもライト無視した構造みたいだから考えやんとあかんぽいし
ど~したもんかな~

あ、iframeタグ効くのか。…でも自動読み込み解除の方法わからんとヤバそうな…
//**********メタセコ準拠のカメラ回転スクリプト**********
//現状の仕様:USBマウスやタブレットの入力を受け付けない
var target : Transform; //起点となるGameObjectを設定して下さい
//初期位置の指定
var ResetDistance = 10.0;
var ResetPosX = 0.0;
var ResetPosY = 0.0;
var ResetX = 0;
var ResetY = 0;
//回転倍率
var RevXSpeed = 10;
var RevYSpeed = 10;
//並行移動倍率
var PosXSpeed = 1;
var PosYSpeed = 1;
//キー入力倍率
var KeyRevSpeed = 2;
var KeyPosSpeed = 0.1;
var KeyZomSpeed = 0.1;
//Y軸の回転制限
var YMinLimit = -20;
var YMaxLimit = 80;
//ズーム制限
var MinDistance = 1;
var MaxDistance = 30;
//焦点位置
private var Distance = ResetDistance;
private var PosX = ResetPosX;
private var PosY = ResetPosY;

//Obit用変数
private var RevX = ResetX;
private var RevY = ResetY;

@script AddComponentMenu("Camera-Control/Mouse Orbit")

function Start () {
var angles = transform.eulerAngles;
RevX = angles.y;
RevY = angles.x;
}

//カメラリセットGUI
function OnGUI () {
if (GUI.Button (Rect (5,5,100,50), "カメラリセット")) {
Distance = ResetDistance;
PosX = ResetPosX;
PosY = ResetPosY;
RevX = ResetX;
RevY = ResetY;
}
}

function Update () {
//角度とり
var rotation = Quaternion.Euler(RevY, RevX, 0);
var position = rotation * Vector3(PosX, PosY, -Distance) + target.position;
transform.rotation = rotation;
transform.position = position;
if (target) {
Distance -= Input.GetAxis("MouseWheele") * 10; //マウスホイールでZ軸移動
//Distance = ClampAngle(Distance, MinDistance, MaxDistance); //距離の上限下限
}

//右ボタンドラッグで回転
if (Input.GetMouseButton(1)) { //ドラッグ計算
RevX += Input.GetAxis("Mouse X") * RevXSpeed;
RevY -= Input.GetAxis("Mouse Y") * RevYSpeed;
//回転制御
//RevY = ClampAngle(RevY, YMinLimit, YMaxLimit);
}

//中ボタンドラッグで平行移動
if (Input.GetMouseButton(2)) { //ドラッグ計算
PosX -= Input.GetAxis("Mouse X") * PosXSpeed;
PosY -= Input.GetAxis("Mouse Y") * PosYSpeed;
}

}
//一回転したら角度リセット
static function ClampAngle (angle : float, min : float, max : float) {
if (angle < -360)
angle += 360;
if (angle > 360)
angle -= 360;
return Mathf.Clamp (angle, min, max);
}
スポンサーサイト

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://tam21979.blog95.fc2.com/tb.php/356-52222755
この記事にトラックバックする(FC2ブログユーザー)

Appendix

外部ツール

ブログ内検索

最近の記事

カウンタ