如何将此代码从Unityscript转换为c#

本文关键字:Unityscript 转换 代码 | 更新日期: 2023-09-27 18:18:41

我正在尝试将Unity UnityScript转换为c#。我得到这个错误:

Assets/Scripts/BoostPlatformCheck.cs(40,36): error CS0019: Operator==' cannot be applied to operands of type int' and ' object'

下面是c#代码:
int collidedWith = collisionInfo.gameObject.GHetInstanceID();  
ArrayList collided = new ArrayList();
....
     if(collidedWith == collided[collided.Count - i - 1])
            {
                alreadyExists = true;
                return; 
            }

我把Array改成了ArrayList,结果发生了冲突。长度到碰撞。当我将它从JS转换为c#时,计数

如何将此代码从Unityscript转换为c#

我把Array改成了ArrayList,结果发生了冲突。长度到碰撞。数当我将它从JS转换为c#时

因为你只想把代码转换成c#,所以使用int数组代替ArrayList:

int[] collided = new int [10]; // This is how you declare arrays in C#

然后你可以像在Javascript中一样使用collided.length来查找数组的长度。

还有一件事,c#中的数组有一个内置的函数Contains(),可以帮助你在你的情况下,这似乎是你在数组上迭代来比较collidedWith。为了简化,您可以删除循环并尝试这样做:

// This means collidedWith exists within collided, so you won't need the loop anymore
if(collided.Contains(collidedWith)) 
    alreadyExists = true;