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

Что делать если при запуске игры персонаж не реагирует на движение джостика?

Тимур Кулахметов Ученик (83), открыт 2 недели назад
using UnityEngine;
using Mirror;

public class PlayerController : NetworkBehaviour
{
public float speed = 5.0f;
public float jumpForce = 5.0f;
private bool isGrounded;
public Joystick joystick;

private Rigidbody rb;
public float rotationSpeed = 2f;
private Camera mainCam;
public Vector3 cameraOffset = new Vector3(0, 2, -5); // Смещение камеры

private void Awake()
{
mainCam = Camera.main;
}

void Start()
{
rb = GetComponent<Rigidbody>();

}
void Update()
{
float horizontal = joystick.Horizontal;
float vertical = joystick.Vertical;

if (!isLocalPlayer) return;

Debug.Log($"Horizontal: {horizontal}, Vertical: {vertical}");


Vector3 direction = new Vector3(horizontal, 0, vertical).normalized;

if (direction.magnitude >= 0.1f)
{
Vector3 moveDirection = Quaternion.Euler(0, mainCam.transform.eulerAngles.y, 0) * direction;
transform.Translate(moveDirection * speed * Time.deltaTime, Space.World );
Quaternion toRotation = Quaternion.LookRotation(moveDirection, Vector3.up);
transform.rotation = Quaternion.RotateTowards(transform.rotation, toRotation, rotationSpeed * Time.deltaTime);
}

if (Input.GetButtonDown("Jump") && isGrounded)
{
rb.AddForce(Vector3.up * jumpForce, ForceMode.Impulse);
}

CameraMovement();
}


private void CameraMovement()
{
Vector3 desiredPosition = transform.position + cameraOffset;
mainCam.transform.position = Vector3.Lerp(mainCam.transform.position, desiredPosition, Time.deltaTime * 3);
mainCam.transform.LookAt(transform.position);
}

void OnCollisionStay(Collision collision)
{
isGrounded = true;
}

void OnCollisionExit(Collision collision)
{
isGrounded = false;
}
}
1 ответ
Полина Черских Ученик (130) 2 недели назад
Этот скрипт на C# для Unity реализует управление игроком в многопользовательской игре. Он использует джойстик для перемещения персонажа и позволяет прыгать, если игрок находится на земле. Камера следует за игроком, создавая эффект динамичного взаимодействия. Код также учитывает локального игрока, чтобы избежать конфликтов между подключенными участниками.
Тимур КулахметовУченик (83) 2 недели назад
и что делать то
Похожие вопросы