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

Unity создание игры

Jojo Fag Знаток (313), открыт 2 недели назад
Всем доброго времени суток! мне нужна помощь, как сделать прокрутку символов на объекте, т.е. на Н.з( номерных знаках). будут на рандом крутится буквы, цифры ( фото н.з. ниже)Можно ли как-то реализовать, если да то как?
(использую движок UNITY, я в нём полный 0)
Управление:
Указываешь регион, нажимаешь на кнопку и выпадают рандомные буквы и цифры, там где я отметил чёрными линиями на след фоткепрошу, помогите!
1 ответ
Рустам Абдрашитов Мыслитель (9518) 2 недели назад
1. Создайте UI элементы:
- Canvas для UI
- Image для фона номерного знака
- Text элементы для каждой части номера (регион, буквы, цифры)
- Button для запуска генерации

2. Создайте новый C# скрипт, назовите его "NumberPlateGenerator":
 using UnityEngine; 
using UnityEngine.UI;
using System.Collections;

public class NumberPlateGenerator : MonoBehaviour
{
public Text regionText;
public Text letterText;
public Text numberText;
public Button generateButton;

private string letters = "АВЕКМНОРСТУХ"; // Допустимые буквы
private string numbers = "0123456789";

void Start()
{
generateButton.onClick.AddListener(GenerateNumberPlate);
}

void GenerateNumberPlate()
{
StartCoroutine(AnimateText(letterText, 3));
StartCoroutine(AnimateText(numberText, 3));
}

IEnumerator AnimateText(Text textComponent, int length)
{
string result = "";
for (int i = 0; i < length; i++)
{
for (int j = 0; j < 10; j++) // Анимация прокрутки
{
if (textComponent == letterText)
result = GetRandomLetters(length);
else
result = GetRandomNumbers(length);

textComponent.text = result;
yield return new WaitForSeconds(0.05f);
}
}
}

string GetRandomLetters(int length)
{
string result = "";
for (int i = 0; i < length; i++)
{
result += letters[Random.Range(0, letters.Length)];
}
return result;
}

string GetRandomNumbers(int length)
{
string result = "";
for (int i = 0; i < length; i++)
{
result += numbers[Random.Range(0, numbers.Length)];
}
return result;
}

public void SetRegion(string region)
{
regionText.text = region;
}
}
3. Прикрепите этот скрипт к пустому GameObject на сцене.

4. В инспекторе скрипта NumberPlateGenerator, назначьте соответствующие Text компоненты для regionText, letterText и numberText, а также кнопку для generateButton.

5. Чтобы установить регион, вы можете создать дополнительное поле ввода (InputField) и кнопку для установки региона. Добавьте следующий код в ваш скрипт:
 public InputField regionInput; 
public Button setRegionButton;

void Start()
{
generateButton.onClick.AddListener(GenerateNumberPlate);
setRegionButton.onClick.AddListener(SetRegionFromInput);
}

void SetRegionFromInput()
{
SetRegion(regionInput.text);
}
6. Назначьте InputField и кнопку установки региона в инспекторе скрипта.

Этот код создаст анимацию прокрутки для букв и цифр номерного знака. Когда вы нажимаете кнопку генерации, буквы и цифры будут случайно меняться в течение короткого времени, создавая эффект "прокрутки", прежде чем остановиться на финальном значении.
Jojo FagЗнаток (313) 2 недели назад
Можно вопрос, что такое canvas?
Похожие вопросы