Как передвинуть камеру на объект на котором стоит персонаж

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Как передвинуть камеру на объект на котором стоит персонаж

Сообщение fsgdoterr 16 июл 2018, 00:36

Как передвинуть камеру на обьект на котором стоит персонаж, например, стоит он допустим на коробке и как бы он по ней не ходил она статичная, потом перепрыгнул на следующую и после того как он перепрыгнул на нее камера плавно перемещается на вторую коробку, и т.д.
fsgdoterr
UNец
 
Сообщения: 42
Зарегистрирован: 10 мар 2018, 15:43

Re: Как передвинуть камеру на объект на котором стоит персонаж

Сообщение getAlex 16 июл 2018, 00:38

https://docs.unity3d.com/ScriptReferenc ... .Lerp.html
Когда игрок касается куба, запоминаешь трансформ этого куба. А если куб изменился(игрок прыгнул на новый куб), то между этими двумя координатами делаешь лерп и тянешь камеру по этим координатам.
getAlex
Адепт
 
Сообщения: 1775
Зарегистрирован: 10 авг 2013, 18:30

Re: Как передвинуть камеру на объект на котором стоит персонаж

Сообщение fsgdoterr 16 июл 2018, 15:08

getAlex писал(а):https://docs.unity3d.com/ScriptReference/Vector3.Lerp.html
Когда игрок касается куба, запоминаешь трансформ этого куба. А если куб изменился(игрок прыгнул на новый куб), то между этими двумя координатами делаешь лерп и тянешь камеру по этим координатам.

касания сделать лучом, или можно как то подругому?
fsgdoterr
UNец
 
Сообщения: 42
Зарегистрирован: 10 мар 2018, 15:43

Re: Как передвинуть камеру на объект на котором стоит персонаж

Сообщение fsgdoterr 16 июл 2018, 16:03

getAlex писал(а):https://docs.unity3d.com/ScriptReference/Vector3.Lerp.html
Когда игрок касается куба, запоминаешь трансформ этого куба. А если куб изменился(игрок прыгнул на новый куб), то между этими двумя координатами делаешь лерп и тянешь камеру по этим координатам.


Написал как ты и говроил, не работает
Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class cam : MonoBehaviour {

    [SerializeField]
    Transform startMarker;
    [SerializeField]
    Transform endMarker;

    public float speed = 2f;

    private float startTime;
    private float journeyLength;
   
    Rigidbody rb;

    private void Start()
    {
        rb = GameObject.Find("untitled").GetComponent<Rigidbody>();
        transform.position = new Vector3(0,6,-6);
        startTime = Time.time;
        journeyLength = Vector3.Distance(startMarker.position, endMarker.position);
    }

    private void Update()
    {
        opredelenie();
        upp();
        iuy();
    }

    public void opredelenie()
    {
        float rayDistance = 2f;
        Ray ray = new Ray(rb.transform.position, Vector3.down);
        RaycastHit rh;
        if(Physics.Raycast(ray,out rh, rayDistance))
        {
            endMarker = rh.transform.gameObject.GetComponent<Transform>();
        }

    }

    public void upp()
    {
        float distCovered = (Time.time - startTime) * speed;
        float fracJourney = distCovered / journeyLength;
        transform.position = Vector3.Lerp(startMarker.position, endMarker.position, fracJourney);
    }

    public void iuy()
    {
        startMarker = endMarker;
    }
}
fsgdoterr
UNец
 
Сообщения: 42
Зарегистрирован: 10 мар 2018, 15:43

Re: Как передвинуть камеру на объект на котором стоит персонаж

Сообщение getAlex 16 июл 2018, 20:35

fsgdoterr писал(а):Написал как ты и говроил, не работает

Ну так я не виноват что ты написал с ошибками. Исправляй.
У тебя тут 2 логические ошибки и 13 синтаксических. И отсутствует часть функционала.
Удаляй, пиши заново. :ymdevil:
getAlex
Адепт
 
Сообщения: 1775
Зарегистрирован: 10 авг 2013, 18:30


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 25