카메라에 표시된 이미지를 저해상도로 설정
처리 부하를 줄이고 해상도가 높은 단말기 부하를 제어하는 데 쓰인다.(ipad 및 Android)
카메라에 구성 요소만 설정하면 OK.
http://wordpress.notargs.com/blog/blog/2016/10/03/unity스크립트 하나만으로 화면 해상도 감소 /
※ 해당 항목 사용자 정의
▶ 이런 느낌
LowResolutionCamera.cs
using UnityEngine;
using UnityEngine.Rendering;
/// <summary>
/// カメラが映すものを低解像度に設定できるようにするコンポーネント
/// </summary>
[RequireComponent(typeof(Camera))]
public class LowResolutionCamera : MonoBehaviour {
/// <summary>
/// デフォルト解像度
/// </summary>
private readonly Vector2 RESOLUTION = new Vector2(750, 1334);
/// <summary>
/// 解像度係数
/// </summary>
[SerializeField, Range(0.1f, 1)]
private float _resolutionWeight = 1f;
private float _currentResolutionWeight = 1f;
private RenderTexture _renderTexture;
private Camera _camera;
private Camera _subCamera;
private void Start() {
SetResolution(_resolutionWeight);
}
/// <summary>
/// 解像度を設定
/// </summary>
public void SetResolution(float resolutionWeight) {
_resolutionWeight = resolutionWeight;
_currentResolutionWeight = resolutionWeight;
// 指定解像度に合わせたレンダーテクスチャーを作成
_renderTexture = new RenderTexture(
width: (int)(RESOLUTION.x * _currentResolutionWeight),
height: (int)(RESOLUTION.y * _currentResolutionWeight),
depth: 24
);
_renderTexture.useMipMap = false;
_renderTexture.filterMode = FilterMode.Point;
// カメラのレンダーテクスチャーを設定
if (_camera == null) {
_camera = GetComponent<Camera>();
}
_camera.targetTexture = _renderTexture;
// レンダーテクスチャーを表示するサブカメラを設定
if (_subCamera == null) {
GameObject cameraObject = new GameObject("SubCamera");
_subCamera = cameraObject.AddComponent<Camera>();
_subCamera.cullingMask = 0;
_subCamera.transform.parent = transform;
}
CommandBuffer commandBuffer = new CommandBuffer();
commandBuffer.Blit((RenderTargetIdentifier)_renderTexture, BuiltinRenderTextureType.CameraTarget);
_subCamera.AddCommandBuffer(CameraEvent.AfterEverything, commandBuffer);
}
private void Update() {
if (_currentResolutionWeight == _resolutionWeight) return;
// _resolutionWeightの値が更新された時だけ解像度変更処理を呼ぶ
// Inspector上で_resolutionWeightを操作するとき用の処理
SetResolution(_resolutionWeight);
}
}
· Inspector에서 조정할 수 있지만, 발표할 때 소용없습니다.ifdef로 둘러싸고 삭제하는 것을 권장합니다・반에서 정의한 RESOLUTION도 게임 곳곳에서 사용하기 때문에 일반 상수용 반에서 제외하는 것이 좋다
• Auto Orientation(기울기 터미널로 화면 방향 변경) 시에도 RenderTexture 해상도를 변경해야 함
Reference
이 문제에 관하여(카메라에 표시된 이미지를 저해상도로 설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/flankids/items/cba8c66c122d56e397b1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)