Оглядываясь вокруг движения игрока [закрыто]C#

Место общения программистов C#
Ответить
Anonymous
 Оглядываясь вокруг движения игрока [закрыто]

Сообщение Anonymous »

Я делаю игру от первого лица в Unity 5 для Xbox 360 и ПК. Maincamera - это игрок. Кроме того, я не знаю, как добавить прыжок, если кто -то скажет мне, что это тоже очень поможет. Движение работает нормально в противном случае. < /P>
Вот мой сценарий: < /p>
using UnityEngine;

[RequireComponent(typeof(Rigidbody))]
[RequireComponent(typeof(CapsuleCollider))]
public class CameraController : MonoBehaviour
{
public float moveSpeed = 5f;
public float lookSpeed = 3f;
public float arrowKeyLookSpeed = 60f;

private Rigidbody rb;
private float yaw = 0f;
private float pitch = 0f;

void Start()
{
rb = GetComponent();
rb.freezeRotation = true; // We handle rotation manually
rb.useGravity = true;

// Ensure the camera has a collider to prevent falling through the floor
if (GetComponent() == null)
{
gameObject.AddComponent();
}
}

void Update()
{
// Camera rotation (Right Stick + Arrow Keys)
float lookX = Input.GetAxis("RightStickHorizontal");
float lookY = Input.GetAxis("RightStickVertical");

yaw += lookX * lookSpeed;
pitch -= lookY * lookSpeed;

if (Input.GetKey(KeyCode.LeftArrow)) yaw -= arrowKeyLookSpeed * Time.deltaTime;
if (Input.GetKey(KeyCode.RightArrow)) yaw += arrowKeyLookSpeed * Time.deltaTime;
if (Input.GetKey(KeyCode.UpArrow)) pitch -= arrowKeyLookSpeed * Time.deltaTime;
if (Input.GetKey(KeyCode.DownArrow)) pitch += arrowKeyLookSpeed * Time.deltaTime;

pitch = Mathf.Clamp(pitch, -80f, 80f);
transform.rotation = Quaternion.Euler(pitch, yaw, 0f);
}

void FixedUpdate()
{
// Movement with Left Stick / WASD (world-space, independent of camera rotation)
float moveX = Input.GetAxis("Horizontal"); // A/D or Left Stick X
float moveZ = Input.GetAxis("Vertical"); // W/S or Left Stick Y

Vector3 move = new Vector3(moveX, 0f, moveZ).normalized; // world axes
Vector3 targetVelocity = move * moveSpeed;

// Preserve vertical velocity for gravity
targetVelocity.y = rb.velocity.y;

rb.velocity = targetVelocity;
}
}
< /code>
Есть идеи, как это исправить? Я ожидал, что это просто осмотрется.

Подробнее здесь: https://stackoverflow.com/questions/797 ... the-player
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»