メインコンテンツへスキップ
< すべてのトピックに戻る

オブジェクトを画面内に収めるには?

カメラの Viewport座標系(0.0〜1.0)を利用して、オブジェクトの現在位置が 0未満や 1以上にはみ出そうになったら、Mathf.Clamp()を使って強制的に範囲内に押し留めます。

シューティングゲームの自機など、画面外へ自由に移動できてしまうとゲームとして成立しなくなるオブジェクトの移動範囲を、画面の解像度が変わっても正確に制限するためです。

移動処理の直後に、Vector3 pos = Camera.main.WorldToViewportPoint(transform.position);を行い、pos.x = Mathf.Clamp(pos.x, 0.05f, 0.95f);のように制限をかけ、再び ViewportToWorldPoint(pos)で戻して適用します。

目次

9周年キャンペーン実施中 早い申込みほど受講料がお得に