这怎么了我在前两行出现错误。

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.xMinbounds.yMinxyGridSize均为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/

10-13 06:23