Границы камеры в 2D

уроки, мануалы и прочая документация по Unity

Сообщение Границы камеры в 2D
» 26 май 2017, 11:18

Всем привет! Вот отличный урок для создания границ камеры в 2D.

https://www.youtube.com/watch?v=u67fbxe8xxY



Скрипт из урока (Исправленный для Unity 5.x ):
Код: Выделить всё
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraController : MonoBehaviour {

    Camera Cam;

    public Transform Player;

    public Vector2
        Margin,
        Smoothing;

    public BoxCollider2D Bounds;

    private Vector3
        _min,
        _max;

    public bool IsFollowing = true;

   // Use this for initialization
   void Start () {

        Cam = GetComponent<Camera>();

        _min = Bounds.bounds.min;
        _max = Bounds.bounds.max;

    }
   
   // Update is called once per frame
   void Update () {

        var x = transform.position.x;
        var y = transform.position.y;

        if (IsFollowing)
        {
            if (Mathf.Abs(x - Player.position.x) > Margin.x)
                x = Mathf.Lerp(x, Player.position.x, Smoothing.x * Time.deltaTime);

            if (Mathf.Abs(y - Player.position.y) > Margin.y)
                y = Mathf.Lerp(y, Player.position.y, Smoothing.y * Time.deltaTime);
        }

        var cameraHalfWidth = Cam.orthographicSize * ((float)Screen.width / Screen.height);

        x = Mathf.Clamp(x, _min.x + cameraHalfWidth, _max.x - cameraHalfWidth);
        y = Mathf.Clamp(y, _min.y + Cam.orthographicSize, _max.y - Cam.orthographicSize);

        transform.position = new Vector3(x, y, transform.position.z);
    }
}


П.С. Если нужен будет перевод, могу сделать. Хотя там должно быть все понятно.
Мои игры в разработке:
Sky Rickshaw WIP - http://c2community.ru/forum/viewtopic.php?f=99&t=9062
Аватара пользователя

Участник
Сообщений: 63
Я тут с 02 фев 2015
Откуда: Москва
Двиг: Unity,C2,CTF2.5
Лицензия: Free, Standart
Репутация 15 [ ? ]


Вернуться в Уроки по Unity

Сейчас эту тему просматривают

Зарегистрированные пользователи: нет зарегистрированных пользователей

Наверх