@yraiv

Как оптимизировать изменение размера камеры?

Нашёл вот такой код, который должен выполнять то, что мне нужно, но обязательно засовывать это всё в update? можно ли один раз в start метод запускать с этим кодом?
[ExecuteInEditMode]
[RequireComponent(typeof(Camera))]
public class MatchWidth : MonoBehaviour {

    // Set this to the in-world distance between the left & right edges of your scene.
    public float sceneWidth = 10;

    Camera _camera;
    void Start() {
        _camera = GetComponent<Camera>();
    }

    // Adjust the camera's height so the desired scene width fits in view
    // even if the screen/window size changes dynamically.
    void Update() {
        float unitsPerPixel = sceneWidth / Screen.width;

        float desiredHalfHeight = 0.5f * unitsPerPixel * Screen.height;

        _camera.orthographicSize = desiredHalfHeight;
    }
}

Если загуглить, то первая страничка - то, что человек написал и его код целиком, мне просто интересно не сильно ли это нагружать будет бедный телефон?
  • Вопрос задан
  • 48 просмотров
Решения вопроса 1
EveningEugene
@EveningEugene
Unity-разраб
У вас есть динамические переменные sceneWidth, Screen.width, Screen.height, а значит запускать этот код можно не каждый апдейт, а только тогда, когда изменяются эти переменные. Выносите код в отдельный метод и вызываете его при каждом изменении этих переменных. У Screen наверняка есть событие, которое умеет сообщать об изменениях размера экрана, подписываете на него метод. sceneWidth можно превратить в свойство, которое в set также будет вызывать этот метод.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы