Движение игрока в настольную игру Unity ⇐ C#
Движение игрока в настольную игру Unity
Я работаю над функцией, в которой движение моего игрока контролируется кнопкой «Перекат», которая действует как генератор случайных чисел. Идея состоит в том, чтобы игрок продвигался по кубикам в соответствии с числом, выдаваемым этим генератором.
Чтобы реализовать это, я оснастил своего плеера 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 += шаги; } }
Я работаю над функцией, в которой движение моего игрока контролируется кнопкой «Перекат», которая действует как генератор случайных чисел. Идея состоит в том, чтобы игрок продвигался по кубикам в соответствии с числом, выдаваемым этим генератором.
Чтобы реализовать это, я оснастил своего плеера 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 += шаги; } }
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение