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

Как сделать такой скрипт передвижение?Visual Studia 2022, Unity 2022..

BarKode Ученик (58), закрыт 4 месяца назад
Так вот, Жёлтый квадрат это Player( эту сцену сделал для примера) он должен ходить только вперёд без остановки то есть идти всё время по оси Z, а с помощью курсора мыши он должен передвигаться по оси X. Пожалуйста напишите скрипт этого передвижение по хорошему с объяснением. Заранее спасибо
Лучший ответ
FaikStr mosh Знаток (273) 4 месяца назад
Вот, надеюсь поможет! using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
// Скорость передвижения вперёд
public float forwardSpeed = 5f;

// Скорость перемещения по оси X
public float moveSpeed = 10f;

// Ограничения по оси X (чтобы игрок не выходил за пределы экрана)
public float minX = -5f;
public float maxX = 5f;

void Update()
{
// Передвижение по оси Z вперёд
transform.Translate(Vector3.forward * forwardSpeed * Time.deltaTime);

// Получение позиции курсора мыши на экране
Vector3 mousePosition = Input.mousePosition;

// Преобразование позиции курсора из экранных координат в мировые
mousePosition = Camera.main.ScreenToWorldPoint(new Vector3(mousePosition.x, mousePosition.y, Camera.main.transform.position.y - transform.position.y));

// Задаём новое положение по оси X, оставляя оси Y и Z без изменений
float targetX = Mathf.Clamp(mousePosition.x, minX, maxX);

transform.position = new Vector3(targetX, transform.position.y, transform.position.z);
}
}
BarKodeУченик (58) 4 месяца назад
Спасибо огромное
FaikStr mosh Знаток (273) BarKode, Не зачто(:
BarKodeУченик (58) 4 месяца назад
Всё работает
FaikStr mosh Знаток (273) BarKode, Отлично!
BarKodeУченик (58) 4 месяца назад
по моему ты не учел одну вещь, moveSpeed написан только самом начале и больше не где. То получается moveSpeed написан просто так.
Остальные ответы
Похожие вопросы