所以在这里我有一个图像将更好地理解我的问题。 所以目前我有一些白色的块,在白色的块中,我有一些青色的边框。 所以我现在要解决的当前问题是。 每当白色盒子延伸到青色边框外。我想调整它们的大小,使它们位于青色边框内。 就像从顶部开始的五分之一。
我该如何解决这个问题?
提前致谢。
修改
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]);
}
答案 0 :(得分:0)
我不熟悉Unity的细节,但无论如何,你需要对矩形进行测试。
假设cyan
是Cyan gameObject的Rectangle,gray
是Gray gameObject的Rectangle。请注意:left
或top
属性可以是x
和y
属性,而right
和bottom
属性可以是{ {1}}和x + width
。
y + height
这当然是假设一个正x和负y世界。例如。底部的数字比顶部的数字大,左侧的数字小于右侧的数字。