扩展限制区域时调整游戏对象的大小

时间:2014-11-16 06:38:30

标签: c# unity3d resize block gameobject

所以在这里我有一个图像将更好地理解我的问题。 所以目前我有一些白色的块,在白色的块中,我有一些青色的边框。 所以我现在要解决的当前问题是。 每当白色盒子延伸到青色边框外。我想调整它们的大小,使它们位于青色边框内。 就像从顶部开始的五分之一。

我该如何解决这个问题?

提前致谢。

enter image description here

修改

void Update() {

    if( numOfGeneratedGuideline < numOfGuidelineToGenerate ) {
        Generate_Guideline_Positons(numOfGeneratedGuideline);
        Generate_Platform_Positions_And_Scale(numOfGeneratedGuideline);
        Generate_Platforms(numOfGeneratedGuideline);
        numOfGeneratedGuideline++;
    }

}

void Generate_Guideline_Positons(int i) {

    float tempGuidelineOffset = groundHeight + ( guidelineOffset * ( i + 1 ) );

    guidelinePosX[i] = worldWidth / 2;
    guidelinePosY[i] = tempGuidelineOffset;
    guidelinePosZ[i] = 0;

}

void Generate_Platform_Positions_And_Scale(int i) {

    randomGuidelineNumber = Random.Range(1, numOfGuidelineToGenerate + 1);

    float tempPlatformPosXMin = ( worldWidth - guidelineWidth ) / 2;
    Debug.Log(tempPlatformPosXMin);
    float tempPlatformPosXMax = worldWidth - tempPlatformPosXMin;
    Debug.Log(tempPlatformPosXMax);
    float tempPlatformPosY = groundHeight + ( guidelineOffset * ( i + 1 ) );

    platformPosX[i] = Random.Range(tempPlatformPosXMin, tempPlatformPosXMax);
    platformPosY[i] = tempPlatformPosY;
    platformPosZ[i] = 0;

    platformScaleX[i] = Random.Range(minPlatformScaleRange, maxPlatformScaleRange);
    platformScaleY[i] = 1;
    platformScaleZ[i] = 1;

    //22 29 36 43 50

}

void Generate_Platforms(int i) {

    GameObject newplatform = Instantiate(platformPrefab, new Vector3(platformPosX[i], platformPosY[i], platformPosZ[i]), Quaternion.identity) as GameObject;
    newplatform.transform.localScale = new Vector3(platformScaleX[i], platformScaleY[i], platformScaleZ[i]);

}

1 个答案:

答案 0 :(得分:0)

我不熟悉Unity的细节,但无论如何,你需要对矩形进行测试。

假设cyan是Cyan gameObject的Rectangle,gray是Gray gameObject的Rectangle。请注意:lefttop属性可以是xy属性,而rightbottom属性可以是{ {1}}和x + width

y + height

这当然是假设一个正x和负y世界。例如。底部的数字比顶部的数字大,左侧的数字小于右侧的数字。