这怎么了 我在前两行出现错误。
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#语言规范:
对于二进制+,–,*,/,%,&,^,|,==,!=,>,<,> =和<=运算符,操作数将转换为T类型,其中T为第一个int,uint,long和ulong的值,它们可以完全表示两个操作数的所有可能值。然后使用类型T的精度执行该操作,结果的类型为T
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句