Unityでの2D座標とスケーリングの処理はかなり単純ですが、自明ではなく、他の開発ツールの動作とは異なります。これが発生するのは、Unityが最近2Dグラフィックスが組み込まれた3Dエンジンだったからです。
特に、Unityの1ユニットが画像の1ピクセルであるとは限りません。画像を2Dスプライトとしてインポートする場合、実際には1対1で設定できるPixels-to-Units設定がありますが、いくつかの理由でデフォルトの100:1のままにすることをお勧めします(物理エンジンが1で正しく動作しません。 1、そしてデフォルトは他の人のコードとの互換性のために優れています)。
このスケーリング設定は、すべての位置が100で除算されることを意味します。スケーリングを常に覚えている限り、それは非常に簡単です。スプライトを256ピクセル(たとえば)移動したい場合は、それを移動します2.56数値を小数点以下2桁/最も近いピクセルに丸めるユーティリティ関数を作成することもできます:Mathf.Round(float * 100)/ 100f
ピクセルパーフェクトカメラの設定については、まず正射投影カメラとして設定を解除します。カメラを選択すると、その設定には透視投影または正投影のドロップダウンがあります。遠近法は、物が3Dに見える一方で、正投影法はシーンをフラットに表示することを意味します。このドロップダウンのすぐ下にサイズがあります。カメラの正射投影サイズを、必要な画面のピクセル寸法の半分に設定します。
たとえば、ピクセルパーフェクトな1024x768の画面が必要だとします。つまり、カメラの高さは384ピクセルでなければなりません。これを100で除算すると(ピクセルと単位のスケールのため)、カメラサイズは3.84になります。繰り返しますが、その計算は単にSCREEN_SIZE / 2 / 100fです。
(私は他の答えが最初に来るのを待つのを待っていましたが、それは数日でした。2DToolkitを使用してUnityで2Dをやっていますが、組み込みの2D機能は比較的新しいです)