オブジェクトの構成
オブジェクトを固定し、入れ子にしたカメラの親を動かす形になっています。

ソース
Vector3 StartFrick, NowRotation;
void Start()
{
//角度の初期化
NowRotation = new Vector3(-360, 0, 0);
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Mouse0))
{
//現在の角度と画面にタッチしたVector3値の和を格納し、Update関数を終了
StartFrick = Input.mousePosition + NowRotation;
return;
}
if (Input.GetKey(KeyCode.Mouse0))
{
//マウスでクリックし続けてる間のみ、
//現在のタッチしているVector3値とStartFrickの差分で角度を変更する
NowRotation = StartFrick - Input.mousePosition;
gameObject.transform.localEulerAngles = new Vector3(NowRotation.y * 0.5f, -NowRotation.x * 0.5f, 0);
}
もっと良い書き方があったらコメントください。
