Страница 1 из 1

2.5 d camera

СообщениеДобавлено: 17 апр 2019, 20:15
artem1414
Доброго времени суток,такой вопрос возник,как реализовать передвижение камеры по 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);
}

}

Re: 2.5 d camera

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

Re: 2.5 d camera

СообщениеДобавлено: 18 апр 2019, 19:35
artem1414
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,можете сказаться почему так?

Re: 2.5 d camera

СообщениеДобавлено: 18 апр 2019, 19:48
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;

Re: 2.5 d camera

СообщениеДобавлено: 18 апр 2019, 20:25
artem1414
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 -= вот так,если там плюс то идет в обратном направлении,а с минусом как в играх пр ферму,в общем большое спасибо)