Demigodd
@Demigodd

Как написать условие для Vector3?

К примеру надо что бы, если Vector3(1) стали Vector3(5), то значение camerago.orthographicSize (то есть zoom), плавно изменилось на 10.

using UnityEngine;
using System.Collections;

public class Eat : MonoBehaviour
{
	public string Tag;
	public float Increase;
	private static Vector3 newScale = new Vector3 (1,1,1);
	public Camera camerago;
	float zoom = 5;

	void Update()
	{
		transform.localScale = Vector3.Lerp (transform.localScale, newScale, Time.deltaTime * 2);
		camerago.orthographicSize = zoom;

		/*if (newScale == new Vector3 (10,10,10)) 
		{
			zoom = 10 * Time.deltaTime;

		}*/
	}

	void OnTriggerEnter(Collider other)
	{
		if(other.gameObject.tag == Tag)
		{
			newScale = transform.localScale + new Vector3(Increase,Increase,Increase);

			Destroy(other.gameObject);
		}
	}
}
  • Вопрос задан
  • 805 просмотров
Решения вопроса 1
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
В том же месте, где запускаете изменение скейла, меняйте целевое значение размера камеры.
public class Eat : MonoBehaviour
{
    public string Tag;
    public float Increase;
    public Camera camerago;

    private Vector3 newScale = Vector3.one;
    private float newZoom = 5;

    private void Update()
    {
        transform.localScale = Vector3.Lerp(transform.localScale, newScale, Time.deltaTime*2);
        camerago.orthographicSize = Mathf.Lerp(camerago.orthographicSize, newZoom, Time.deltaTime);
    }

    private void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.CompareTag(Tag))
        {
            newScale = transform.localScale + new Vector3(Increase, Increase, Increase);
            newZoom = Increase;

            Destroy(other.gameObject);
        }
    }
}

А вообще да, вам правильно советуют, поделайте туториалы, много вопросов сразу отпадёт.
С чего начать изучение Unity3D?
https://docs.unity3d.com/ScriptReference/Mathf.Ler...
https://docs.unity3d.com/ScriptReference/Component...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
GavriKos
@GavriKos Куратор тега Unity
Ну так так и напишите - если каждый dimention вектора равен 5, то начать плавное изменение. Последнее - это флаг. И потом отдельно проверяете этот флаг. Или корутину внутри, но я лично против такого :-)

Вообще ИМХО рано вам еще игры писать - вы с такими простыми вещами испытываете трудности. Попробуйте с чего попроще.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы