如何将此Lua代码转换为Unity中的C#以进行包装开放模拟

我正在尝试将我的Lua脚本转换为Unity中的C#,我需要帮助完成这项工作。

我尝试学习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函数可能不起作用,但请尝试。

点赞
用户2226988
用户2226988

在.NET中没有Random的默认实例,因此必须创建一个实例。var表示local

数组初始化器的语法略微冗长。C#是静态(并且强)类型化的,但是类型常常可以被推断出来。在这种情况下,数组元素为String,因此数组值和变量都是String数组。元素的范围从0开始。

Func<String[], String>是一个委托的类型,它接受一个String数组并返回一个String。在下面的语法中,不幸的是,类型不能被推断出来。

Console.WriteLineprint有些相似。

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));

正如您所看到的,通过适当的库函数替换、语法调整和静态类型使用,可以非常简单。编译时类型推断使读取变得更加容易。

2019-06-05 00:20:55