C#

Нужны скрипты в Unity 3д.

нужен скрипт чтобы сделать 3д модельку игроком, ещё чтобы за этим игроком шла камера, а не просто камера стоит на одном месте а игрок двигается и двигается до тех пор пока он не выйдет за пределы камеры и его уже не будет видно.
Пример скрипта для передвижения игрока и камеры за ним:

csharp
 using UnityEngine; 

public class PlayerController : MonoBehaviour
{
public float moveSpeed = 5f; // скорость движения игрока
public Camera mainCamera; // ссылка на главную камеру
public float cameraFollowSpeed = 5f; // скорость следования камеры за игроком

private void Update()
{
// получаем ввод от игрока с помощью клавиатуры или джойстика
float horizontalInput = Input.GetAxis("Horizontal");
float verticalInput = Input.GetAxis("Vertical");

// перемещаем игрока в соответствии с вводом и скоростью
transform.position += new Vector3(horizontalInput, 0f, verticalInput) * Time.deltaTime * moveSpeed;

// перемещаем камеру за игроком с заданной скоростью
Vector3 targetCameraPosition = transform.position - mainCamera.transform.forward * 8f + Vector3.up * 2f;
mainCamera.transform.position = Vector3.Lerp(mainCamera.transform.position, targetCameraPosition, cameraFollowSpeed * Time.deltaTime);
mainCamera.transform.LookAt(transform.position); // всегда смотрим на игрока
}
}
Этот скрипт можно присоединить к игроку, и тогда он будет перемещаться в соответствии с вводом от игрока, а главная камера будет следовать за ним с помощью линейной интерполяции, чтобы передвижение камеры было плавным. Параметры moveSpeed и cameraFollowSpeed можно настроить в инспекторе.
Василий Лысенко
Василий Лысенко
4 495
Лучший ответ
Вот пример простого скрипта в Unity, который позволяет управлять игроком и следить за ним камерой:

```csharp
using UnityEngine;

public class PlayerController : MonoBehaviour
{
public float moveSpeed = 5f;

private Rigidbody playerRigidbody;

private void Start()
{
playerRigidbody = GetComponent<Rigidbody>();
}

private void Update()
{
// Получаем ввод от игрока
float moveHorizontal = Input.GetAxis("Horizontal");
float moveVertical = Input.GetAxis("Vertical");

// Вычисляем вектор направления движения
Vector3 movement = new Vector3(moveHorizontal, 0f, moveVertical);

// Применяем движение к игроку
playerRigidbody.velocity = movement * moveSpeed;
}
}
```

Этот скрипт следует присоединить к игровому объекту, который представляет игрока в сцене Unity. Затем вы можете использовать клавиши WASD или стрелки для перемещения игрока. Данный скрипт просто передвигает игрока в указанном направлении со скоростью `moveSpeed`.

Чтобы камера следовала за игроком, вы можете создать новый пустой игровой объект в сцене и присоединить к нему компонент "Camera". Затем создайте другой скрипт и присоедините его к этому объекту:

```csharp
using UnityEngine;

public class CameraController : MonoBehaviour
{
public Transform target;
public Vector3 offset;

private void Update()
{
// Следовать за игроком с учетом смещения
transform.position = target.position + offset;
}
}
```

В этом скрипте вы должны присвоить переменной `target` ссылку на игровой объект, представляющий игрока. Вы также можете настроить `offset`, чтобы задать смещение камеры относительно игрока. Когда игрок двигается, камера будет следовать за ним, поддерживая указанное смещение.

Обратите внимание, что это лишь простые примеры и вы можете доработать их под свои нужды.
Андрей Андрей
Андрей Андрей
5 034
500 Рублей