使用boxcollider2d.bounds.size.x给我错误的大小

问题描述

好吧,我正在尝试使用Boxcollider2d.bounds.size.x将两个平台“实例化”在一起,方法是使用以下方法生成平台

spawnPosX = lastSpawnedplatform.transform.position.x + UnityEngine.Random.Range(0.5f,2) + width;

width = Boxcollider2d.bounds.size.x

,但尺寸很小,平台重叠。如果有人有解决方案,我将非常高兴听到它,如果是这样,请@我

我尝试将宽度声明移动到没有成功

完整代码https://pastebin.com/7Rn1dEBh

解决方法

    GameObject boundsSizer = Instantiate(choosenPlatform,new Vector2(99,99),transform.rotation);
    choosenPlatformWidth = boundsSizer.GetComponent<BoxCollider2D>().bounds.extents.x;
    DestroyImmediate(boundsSizer);
    //jävla skit lösning här men men
    float spawnPosX;
    if (canDoubleJump == true)
    {
        spawnPosX = lastSpawnedPlatform.transform.position.x + /*UnityEngine.Random.Range(0.5f,2) +*/  lastSpawnedPlatformWidth + choosenPlatformWidth;
    }
    else
    {
        spawnPosX = lastSpawnedPlatform.transform.position.x + /*UnityEngine.Random.Range(0.5f,1.25f) + */lastSpawnedPlatformWidth + choosenPlatformWidth;
    }
    return spawnPosX;

通过在两个对象上获取bounds.extent来解决问题,但要实现这一点,我必须实例化使用jects的对象使用bounds.extent,然后使用destroy imidiate 糟糕的苦恼,但可以奏效