3D: приближение работает и с ортографической камерой (размер кадра по расстоянию)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Alexander
2026-11-05 17:14:38 +01:00
co-authored by Claude Opus 5.5
parent 35319be8ca
commit 7d932e3cbc
2 changed files with 7 additions and 0 deletions
+6
View File
@@ -108,6 +108,12 @@ public class City3DCamera : MonoBehaviour
Quaternion rot = Quaternion.Euler(pitch, yaw, 0);
transform.rotation = rot;
transform.position = target - rot * Vector3.forward * distance;
// Камера сцены может быть ортографической (вид 2.5D без перспективы): у неё расстояние не меняет размер города
// на экране -- «+ / −» и щипок ничего не делали (05.11). Тогда приближение -- через размер кадра: столько же
// земли, сколько видно перспективной камерой с этого расстояния
if (cam == null) cam = GetComponent<Camera>();
if (cam != null && cam.orthographic)
cam.orthographicSize = distance * Mathf.Tan(cam.fieldOfView * 0.5f * Mathf.Deg2Rad);
if (RenderSettings.fog && RenderSettings.fogMode == FogMode.Linear)
{
RenderSettings.fogStartDistance = distance + fogStartBehind;