这怎么了我在前两行出现错误。
bounds.xMin = (Mathf.FloorToInt (x / GridSize) * GridSize);
bounds.yMin = (Mathf.FloorToInt (y / GridSize) * GridSize);
bounds.xMax = bounds.xMin + GridSize;
bounds.yMax = bounds.yMin + GridSize;
bounds.xMin
,bounds.yMin
,x
,y
和GridSize
均为uint
。 最佳答案
您所有的变量均为uint
,但Mathf.FloorToInt
的返回类型为int
。
要用uint
乘以int
,C#会将两个操作数都转换为long
,因为它是唯一可以表示所有可能值的整数类型。此操作的结果也将为long
。
您将需要将整个结果或至少Mathf.FloorToInt
的结果强制转换为uint
。
根据C#语言规范:
对于二进制+,–,*,/,%,&,^,|,==,!=,>, =和
关于c# - C#,无法将类型'long'隐式转换为'uint',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35497449/