Движение игрока в настольную игру UnityC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Движение игрока в настольную игру Unity

Сообщение Anonymous »


Я работаю над функцией, в которой движение моего игрока контролируется кнопкой «Перекат», которая действует как генератор случайных чисел. Идея состоит в том, чтобы игрок продвигался по кубикам в соответствии с числом, выдаваемым этим генератором.

Чтобы реализовать это, я оснастил своего плеера Rigidbody и Collider. Я попытался связать GameObject, содержащий соответствующий сценарий, с событием кнопки «On Click», но, похоже, он не работает должным образом. Есть ли у кого-нибудь предложения или решения этой проблемы?
с использованием System.Collections; использование System.Collections.Generic; использование UnityEngine; использование UnityEngine.UI; общедоступный класс MovePlayerOnButtonPress: MonoBehaviour { общедоступный GameObject BoardGamePiece_Blue; // Назначьте здесь свой объект игрока общедоступный текстrollResultText; // Назначьте здесь текст пользовательского интерфейса результата броска public float moveDistancePerUnit = 1.0f; // Расстояние перемещения на единицу рулона частный bool isRollButtonPressed = false; частный introllNumber = 0; частный int currentPosition = 0; общественные пространства Transform[]; общедоступное плавающее перемещение moveSpeed ​​= 5.0f; общественная пустота OnRollButtonPressed() { rollNumber = Random.Range(1, 7); // Имитация броска кубика (от 1 до 6) rollResultText.text =rollNumber.ToString(); isRollButtonPressed = правда; } недействительное обновление() { если (исроллбуттонпрессед) { MovePlayerByRollNumber(); isRollButtonPressed = ложь; Vector3 currentPosition = Transform.position; currentPosition.x += moveSpeed ​​* Time.deltaTime; Transform.position = currentPosition; } } частная пустота MovePlayerByRollNumber() { Vector3 moveDirection = BoardGamePiece_Blue.transform.forward * moveDistancePerUnit *rollNumber; BoardGamePiece_Blue.transform.position += moveDirection; } public void MovePlayer (int шаги) { // Вычисляем новую позицию. currentPosition += шаги; } }
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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