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

Скрипт для изменений в Unity

Антон Оконешников Ученик (108), на голосовании 8 месяцев назад
Создайте новый скрипт под названием CubeScript. Присоедините
скрипт к кубу.

1 Когда игрок нажимает клавишу ← или →, куб должен перемещаться
вдоль оси x в отрицательном или положительном направлении
соответственно. Всякий раз, когда игрок нажимает клавишу ↓ или ↑, куб
должен перемещаться вдоль оси z в отрицательном или положительном
направлении соответственно.
2 Когда игрок перемещает мышь вдоль оси y, камера должна
поворачиваться вокруг оси x. Когда игрок перемещает мышь вдоль оси x, куб
должен поворачиваться вокруг оси y.
3 Когда игрок нажимает клавишу M, куб должен удвоиться в размерах.
При повторном нажатии куб должен вернуться к своему первоначальному
размеру. Клавиша M таким образом играет роль переключателя между
размерами куба.
Голосование за лучший ответ
мята Мудрец (14999) 9 месяцев назад
Сам и делай. Нк хера се выполз ?
Татьяна Просветленный (36384) 9 месяцев назад
 using UnityEngine; 

public class CubeScript : MonoBehaviour
{
// Скорость перемещения куба по осям x и z
public float moveSpeed = 5f;

// Скорость поворота куба и камеры по осям x и y
public float rotateSpeed = 50f;

// Флаг, указывающий, увеличен ли куб или нет
private bool isScaled = false;

// Первоначальный размер куба
private Vector3 originalScale;

// Увеличенный размер куба
private Vector3 scaledScale;

// Ссылка на компонент камеры
private Camera cam;

// Метод, вызываемый при запуске сцены
private void Start()
{
// Сохраняем первоначальный размер куба
originalScale = transform.localScale;

// Вычисляем увеличенный размер куба, умножая каждую компоненту на 2
scaledScale = originalScale * 2;

// Находим компонент камеры на сцене
cam = Camera.main;
}

// Метод, вызываемый каждый кадр
private void Update()
{
// Получаем ввод с клавиатуры для перемещения куба по осям x и z
float horizontalInput = Input.GetAxis("Horizontal");
float verticalInput = Input.GetAxis("Vertical");

// Вычисляем вектор направления перемещения куба
Vector3 moveDirection = new Vector3(horizontalInput, 0, verticalInput);

// Перемещаем куб в соответствии с вектором направления и скоростью перемещения
transform.Translate(moveDirection * moveSpeed * Time.deltaTime);

// Получаем ввод с мыши для поворота куба и камеры по осям x и y
float mouseX = Input.GetAxis("Mouse X");
float mouseY = Input.GetAxis("Mouse Y");

// Поворачиваем куб вокруг оси y в соответствии с перемещением мыши по оси x и скоростью поворота
transform.Rotate(Vector3.up * mouseX * rotateSpeed * Time.deltaTime);

// Поворачиваем камеру вокруг оси x в соответствии с перемещением мыши по оси y и скоростью поворота
cam.transform.Rotate(Vector3.right * -mouseY * rotateSpeed * Time.deltaTime);

// Проверяем, нажата ли клавиша M
if (Input.GetKeyDown(KeyCode.M))
{
// Меняем флаг isScaled на противоположное значение
isScaled = !isScaled;

// Если флаг isScaled равен true, то увеличиваем куб до увеличенного размера
if (isScaled)
{
transform.localScale = scaledScale;
}
// Иначе возвращаем куб к первоначальному размеру
else
{
transform.localScale = originalScale;
}
}
}
}
Похожие вопросы