「Unity/端末サイズ」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→縦ipad判定) |
|||
| 行47: | 行47: | ||
} | } | ||
</pre> | </pre> | ||
| + | ==3Dのcanvasをフィット== | ||
| + | #CanvasのInspectorのCanvasScalerを"Constant Pixel Size "から"Scale With Screen Size"に変更して | ||
| + | #CanvasScalerのReferenceResolutionを1080x1920(CanvasのRectTransformの値と同じ)へ | ||
2022年4月19日 (火) 16:30時点における版
サンプル
CameraオブジェクトのProjectionをorthographicへ変更しておく。
void Awake()
{
TermSize.OrthographicSizeAuto();
}
TermSize.cs
public class TermSize {
public static void OrthographicSizeAuto () {
// 縦画面 iPhone6
float developAspect = 750.0f / 1334.0f;
// 横画面 iPhone6
// float developAspect = 1334.0f / 750.0f;
float deviceAspect = (float)Screen.width / (float)Screen.height;
float scale = deviceAspect / developAspect;
Camera mainCamera = Camera.main;
float deviceSize = mainCamera.orthographicSize;
float deviceScale = 1.0f / scale;
if (scale > 1) {
Debug.Log("scale変更不要");
return;
}
mainCamera.orthographicSize = deviceSize * deviceScale;
}
}
参考:http://www.project-unknown.jp/entry/2017/01/05/212837
ipad判定
public static bool IsIPad {
get {
return SystemInfo.deviceModel.Contains ("iPad");
}
}
参考:http://westhillapps.blog.jp/archives/35736621.html
縦ipad判定
public static bool IsIPadDeviceAspect() {
float deviceAspect = (float)Screen.width / (float)Screen.height; // 2048 / 2732 = 0.74963397
if (deviceAspect > 0.749f && deviceAspect <= 0.751f) {
return true;
}
return false;
}
3Dのcanvasをフィット
- CanvasのInspectorのCanvasScalerを"Constant Pixel Size "から"Scale With Screen Size"に変更して
- CanvasScalerのReferenceResolutionを1080x1920(CanvasのRectTransformの値と同じ)へ
