2.5 d camera

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

2.5 d camera

Сообщение artem1414 17 апр 2019, 20:15

Доброго времени суток,такой вопрос возник,как реализовать передвижение камеры по x и z координатам,то есть как в играх про ферму,при нажатии на мышку и её движении,камера движется в том же направлении,вот мелкий код который я набросал при помощи интернета и поиска разных скриптов,так вот с концом я не особо понимаю как работать,я в скобки записал transform.position.x и transform.position.z но выдало ошибку,мол для lerp 4 аргумента,пожалуйста помогите,заранее благодарю
public GameObject obj;
public float Speed = 5f;
bool Temp;

// Start is called before the first frame update
void Start()
{

}
void OnMouseEnter()
{
Temp = true;
}

void OnMouseExit()
{
if (!Input.GetMouseButton(0))
Temp = false;
}
// Update is called once per frame
void Update()
{

if (Input.GetMouseButton(0) && Temp)
{
obj.transform.position = Vector2.Lerp(transform.position, Camera.main.ScreenToWorldPoint(Input.mousePosition), Speed * Time.deltaTime);
}

}
artem1414
UNITрон
 
Сообщения: 233
Зарегистрирован: 10 фев 2016, 17:27

Re: 2.5 d camera

Сообщение 1max1 17 апр 2019, 20:45

У тебя там 3 аргумента, всё правильно. Только вот:
obj.transform.position = Vector2.Lerp(obj.transform.position, Camera.main.ScreenToWorldPoint(Input.mousePosition), Speed * Time.deltaTime);
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: 2.5 d camera

Сообщение artem1414 18 апр 2019, 19:35

1max1 писал(а):У тебя там 3 аргумента, всё правильно. Только вот:
obj.transform.position = Vector2.Lerp(obj.transform.position, Camera.main.ScreenToWorldPoint(Input.mousePosition), Speed * Time.deltaTime);

Не совсем,так не работает,мне надо чтобы за мышкой шло,то есть координаты мышки,я сделал вот так
float x = Input.GetAxis("Mouse X");
PlayerPrefs.SetFloat("x",x);
x = PlayerPrefs.GetFloat("x",x);
Camera.main.transform.position = new Vector3(x,10,z);
Вот и также с z (x и z) обычные флоат,икс по "иксу" а z по "y" мышки,камера передвигается но почему-то идет обратно на нулевые координаты,шатается так сказать,то есть дергая мышкой координаты изменяются и после остановки движения мышки камера вернутся к 0 по x и z,можете сказаться почему так?
artem1414
UNITрон
 
Сообщения: 233
Зарегистрирован: 10 фев 2016, 17:27

Re: 2.5 d camera

Сообщение 1max1 18 апр 2019, 19:48

Синтаксис:
Используется csharp
var pos = Camera.main.transform.position;
pos.x += Input.GetAxis("Mouse X");
pos.z += Input.GetAxis("Mouse Y");
Camera.main.transform.position = pos;
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: 2.5 d camera

Сообщение artem1414 18 апр 2019, 20:25

1max1 писал(а):
Синтаксис:
Используется csharp
var pos = Camera.main.transform.position;
pos.x += Input.GetAxis("Mouse X");
pos.z += Input.GetAxis("Mouse Y");
Camera.main.transform.position = pos;

Да это то что мне нужно,спасибо,я кстати изменил poz.x -= вот так,если там плюс то идет в обратном направлении,а с минусом как в играх пр ферму,в общем большое спасибо)
artem1414
UNITрон
 
Сообщения: 233
Зарегистрирован: 10 фев 2016, 17:27


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11