ArtikSlayer
@ArtikSlayer
Ещё тот лентяй.

Как сделать границы камеры?

Здравствуйте.Хотел сделать границы камеры, некий аналог камеры как в Марио или подобное.

Изначально было сделано так. Было https://www.youtube.com/watch?v=8aVZuL9ocrk (видео) (+ пару уроков ранее).

using UnityEngine;
using System.Collections;

public class CameraController : MonoBehaviour {

public PlayerController player;

[Header ("Привязка камеры")]
public bool isFollowing;
public float xOffset;
public float yOffset;

// Use this for initialization
void Start () {
    player = FindObjectOfType<PlayerController>();

    isFollowing = true;
}

// Update is called once per frame
void Update () {
    if (isFollowing)
        transform.position = new Vector3 (player.transform.position.x+xOffset, player.transform.position.y+yOffset, transform.position.z);
}
}


Хочу https://www.youtube.com/watch?v=I6xmOMsRWeo (видео) (+ может 1 урок вперёд)

using UnityEngine;
using System.Collections;

public class CameraFollow : MonoBehaviour {

private Vector2 velocity;

public float smoothTimeY;
public float smoothTimeX;

//public GameObject player;
public PlayerController player;

public bool bounds;

public Vector3 minCameraPos;
public Vector3 maxCameraPos;

// Use this for initialization
void Start () {

    //player = GameObject.FindGameObjectsWithTag ("Player");
    player = FindObjectOfType<PlayerController>();

}

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

    float posX = Mathf.SmoothDamp (transform.position.x, player.transform.position.x, ref velocity.x, smoothTimeX);
    float posY = Mathf.SmoothDamp (transform.position.y, player.transform.position.y, ref velocity.x, smoothTimeY);

    transform.position = new Vector3 (posX, posY, transform.position.z);

    if (bounds)
    {
        transform.position = new Vector3(Mathf.Clamp(transform.position.x, minCameraPos.x, maxCameraPos.x),
                                         Mathf.Clamp(transform.position.y, minCameraPos.y, maxCameraPos.y),
                                         Mathf.Clamp(transform.position.z, minCameraPos.z, maxCameraPos.z));
    }
}
}


Сидел разбирался,но идёт какой-то конфликт.Чего-то я не замечаю. Подскажите пожалуйста, как выйти из этой ситуации.

Сам проект. https://www.dropbox.com/s/l4hybkh95rsuejd/Lost%20P...

UPD.Заранее.
Код заработал, если убрать активность с первого скрипта и вытянуть камеру из дочерних объектов "Игрока", но теперь после смерти пропадает спрайт героя.
  • Вопрос задан
  • 2139 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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