Как изменить этот код Lua на C # для Unity для симуляции открытия пакета - PullRequest
0 голосов
/ 05 июня 2019

Я пытаюсь преобразовать свой Lua-скрипт в C # для Unity, мне нужна помощь для этого.

Я пытался изучить C #, чтобы преобразовать его, но не очень хорошо понимаю C #.

PackOpening = function(x) local r = math.random(1,261) return x[r] end

IconsPack = {"Pele 99 Rated","Ronaldo 97 Rated","Ronaldo 96 Rated","Cruyff 95 Rated","Pele 95 Rated","Ronaldinho 95 Rated","Eusebio 94 Rated","Cruyff 94 Rated","Best 94 Rated","Henry 94 Rated","Ronaldinho 94 Rated","Ronaldo 94 Rated","Van Basten 94 Rated","Lineker 93 Rated","Luis Figo 93 Rated","Eusebio 93 Rated","Best 93 Rated","Gullit 93 Rated","Henry 93 Rated","Van Basten 93 Rated","Del Piero 93 Rated","Van Nistelrooy 93 Rated","Lineker 92 Rated","Rivaldo 92 Rated","Raul 92 Rated","Luis Figo 92 Rated","Stoichkov 92 Rated","Del Piero 92 Rated","Bergkamp 92 Rated","Butragueno 92 Rated","Kluivert 92 Rated","Van Nistelrooy 92 Rated","Shearer 92 Rated","Inzaghi 91 Rated","Kluivert 91 Rated","Cruyff 91 Rated","Micheal Owen 91 Rated","Eusebio 91 Rated","Pele 91 Rated","Shearer 91 Rated","Shevchenko 91 Rated","Van Basten 91 Rated","Hernandez 91 Rated","Klose 91 Rated","Trezeguet 91 Rated","Luis Figo 90 Rated","Best 90 Rated","Henry 90 Rated","Hernandez 90 Rated","Inzaghi 90 Rated","Larsson 90 Rated","Zola 90 Rated","Rivaldo 90 Rated","Ronaldo 90 Rated","Butragueno 90 Rated","Van Nistelrooy","Lineker 89 Rated","Baggio 89 Rated","Laudrup 89 Rated","Cruyff 89 Rated","Eusebio 89 Rated","Shearer 89 Rated","Van Basten 89 Rated","Klose 89 Rated"} print(PackOpening(IconsPack))

Я ожидаю, что функция math.random может не работать, но, пожалуйста, попробуйте.

1 Ответ

0 голосов
/ 05 июня 2019

В .NET нет экземпляра по умолчанию Random, поэтому вам нужно создать экземпляр.var означает local.

Синтаксис для инициализатора массива немного более подробный.C # типизирован (и строго) типизирован, но типы часто могут быть выведены.В этом случае элементы массива равны String, поэтому значение и переменная массива - это массивы String.Диапазон элементов начинается с 0.

Func<String[], String> - это тип для делегата, который принимает массив String и возвращает String.В приведенном ниже синтаксисе, к сожалению, тип не может быть выведен.

Console.WriteLine чем-то похож на print.

var random = new Random();

var IconsPack = new[] { "Pele 99 Rated", "Ronaldo 97 Rated", "Ronaldo 96 Rated", "Cruyff 95 Rated", "Pele 95 Rated", "Ronaldinho 95 Rated", "Eusebio 94 Rated", "Cruyff 94 Rated", "Best 94 Rated", "Henry 94 Rated", "Ronaldinho 94 Rated", "Ronaldo 94 Rated", "Van Basten 94 Rated", "Lineker 93 Rated", "Luis Figo 93 Rated", "Eusebio 93 Rated", "Best 93 Rated", "Gullit 93 Rated", "Henry 93 Rated", "Van Basten 93 Rated", "Del Piero 93 Rated", "Van Nistelrooy 93 Rated", "Lineker 92 Rated", "Rivaldo 92 Rated", "Raul 92 Rated", "Luis Figo 92 Rated", "Stoichkov 92 Rated", "Del Piero 92 Rated", "Bergkamp 92 Rated", "Butragueno 92 Rated", "Kluivert 92 Rated", "Van Nistelrooy 92 Rated", "Shearer 92 Rated", "Inzaghi 91 Rated", "Kluivert 91 Rated", "Cruyff 91 Rated", "Micheal Owen 91 Rated", "Eusebio 91 Rated", "Pele 91 Rated", "Shearer 91 Rated", "Shevchenko 91 Rated", "Van Basten 91 Rated", "Hernandez 91 Rated", "Klose 91 Rated", "Trezeguet 91 Rated", "Luis Figo 90 Rated", "Best 90 Rated", "Henry 90 Rated", "Hernandez 90 Rated", "Inzaghi 90 Rated", "Larsson 90 Rated", "Zola 90 Rated", "Rivaldo 90 Rated", "Ronaldo 90 Rated", "Butragueno 90 Rated", "Van Nistelrooy", "Lineker 89 Rated", "Baggio 89 Rated", "Laudrup 89 Rated", "Cruyff 89 Rated", "Eusebio 89 Rated", "Shearer 89 Rated", "Van Basten 89 Rated", "Klose 89 Rated" };
Func<String[], String> PackOpening = (x) => { var r = random.Next(0, x.Length - 1); return x[r]; };
Console.WriteLine(PackOpening(IconsPack));

Как видите, это может быть довольно просто с соответствующими заменами для библиотечных функций, адаптации синтаксиса и использования статической типизации.Вывод типа во время компиляции облегчает чтение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...