如何将此代码从Unityscript转换为c#
本文关键字:Unityscript 转换 代码 | 更新日期: 2023-09-27 18:18:41
我正在尝试将Unity UnityScript转换为c#。我得到这个错误:
下面是c#代码:Assets/Scripts/BoostPlatformCheck.cs(40,36): error CS0019: Operator
==' cannot be applied to operands of type
int' and ' object'
int collidedWith = collisionInfo.gameObject.GHetInstanceID();
ArrayList collided = new ArrayList();
....
if(collidedWith == collided[collided.Count - i - 1])
{
alreadyExists = true;
return;
}
我把Array改成了ArrayList,结果发生了冲突。长度到碰撞。当我将它从JS转换为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;