Обработка 2D-координат и масштабирование в Unity довольно просты, но неочевидны, и, как вы заметили, это не похоже на работу других инструментов разработчика. Это происходит потому, что Unity был 3D-движком, в который недавно была внедрена 2D-графика.
В частности, 1 единица в Unity не обязательно составляет 1 пиксель на изображении. Когда вы импортируете изображения как 2D-спрайты, на самом деле есть параметр Pixels-to-Units, который можно сделать 1: 1, но я рекомендую оставить его по умолчанию 100: 1 по нескольким причинам (физический движок не работает правильно на 1: 1, и по умолчанию лучше для совместимости с чужим кодом).
Этот параметр масштабирования означает, что все позиции делятся на 100. Это довольно легко, если вы всегда помните масштабирование; если вы хотите переместить спрайт на 256 пикселей (скажем), то вы перемещаете его 2.56. Вы также можете написать служебную функцию для округления чисел до 2 десятичных знаков / ближайшего пикселя: Mathf.Round (float * 100) / 100f
Что касается настройки идеальной по пикселям камеры, сначала установите ее как орфографическую камеру. Когда вы выбираете камеру, в ее настройках есть раскрывающийся список для перспективной или орфографической проекции; перспектива означает, что вещи будут выглядеть трехмерными, в то время как орфографическое отображение сцены плоское Прямо под этим раскрывающимся списком находится Размер; установите орфографический размер камеры, равный половине размера экрана, который вы хотите.
Например, допустим, вы хотите экран с разрешением 1024x768, идеально подходящий для пикселей. Ну, это означает, что высота камеры должна быть 384 пикселей. Разделите это на 100 (из-за масштаба пикселей к единицам), и вы получите 3,84 для размера камеры. Опять же, эта математика просто SCREEN_SIZE / 2 / 100f
(Я ждал, чтобы увидеть, какие другие ответы появятся первыми, но это было пару дней. Я некоторое время делал 2D в Unity, используя 2D Toolkit , но я относительно новичок во встроенных функциях 2D)