Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему этот код для камеры не работает? UNITY 2D C#

ДМИТРИЙ КРУТОЙЙ Ученик (228), открыт 2 недели назад
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CAMERASCRIPT : MonoBehaviour
{
public GameObject COCROACH;
public GameObject _CAMERA;
void Start()
{
COCROACH = GameObject.Find("PLAYERMM");
_CAMERA = GameObject.Find("MainCamera");

}

void Update()
{
_CAMERA.transform.Translate(new Vector2(0, COCROACH.transform.position.y) * Time.deltaTime * 10);
}
}
1 ответ
TeAnte Просветленный (40010) 2 недели назад
Может из-за постоянного смещения камеры?
_CAMERA.transform.Translate(new Vector2(0, COCROACH.transform.position.y) * Time.deltaTime * 10);
Этот код постоянно двигает камеру вверх или вниз со скоростью, зависящей от Y-координаты объекта "PLAYERMM". Как бы надо понимать, что transform.Translate перемещает объект относительно его текущего положения, а не устанавливает его в новую позицию. Это может привести к тому, что камера будет "улетать" вверх или падать вниз.
Тем более нет никакого сглаживания, типа Lerp или SmoothDamp.
Попробуй установить так же ее позицию относительно позиции объекта "PLAYERMM" с учетом сглаживания.
Похожие вопросы