vai*_*hav 11 sprite game-engine unity-game-engine
我试图从我有的一些方形精灵中创建一行.所以要获得我正在使用的这些精灵的宽度
tileWidth = (int)tileSet[0].renderer.bounds.size.x;
Run Code Online (Sandbox Code Playgroud)
然后形成我的行
for(int i = 0; i < tileSet.Length ; i++){
if((i+1)*tileWidth<screenWidth){
tileSet[i].transform.position = new Vector3(i*tileWidth,0,0);
}
}
Run Code Online (Sandbox Code Playgroud)
但精灵仍然相互重叠,并没有形成一个合适的行.
我在这里做错了什么,我该如何纠正呢?
MBe*_*mam 18
如果您使用的是Unity 5,则必须使用以下代码:
float tileWidth = tileSet[0].GetComponent<SpriteRenderer>().bounds.size.x;
Run Code Online (Sandbox Code Playgroud)
您还必须注意Pixel Per Units值.
小智 15
如果精灵的res是128x128像素.
而这个精灵的Pixels To Units是100.
所以你的tileWidth将是:renderer.bounds.size.x = 128/100 = 1.28
但你使用int:(int)renderer.bounds.size.x =(int)1.28 = 1
这就是你的精灵互相重叠的原因.
float tileWidth = (float)tileSet[0].renderer.bounds.size.x;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42876 次 |
| 最近记录: |