Unity 2D:如何将物体缩放至适配两点A、B之间?
物体K适配A、B两点的下一步操作
嘿,这个问题核心就是计算正确的缩放比例并执行缩放,我给你一步步拆解清楚:
第一步:计算A、B两点的实际距离
首先得算出AB的真实长度,假设A、B是2D坐标点(比如A=(x₁,y₁),B=(x₂,y₂)),用距离公式计算:
distance_AB = √[(x₂ - x₁)² + (y₂ - y₁)²]
如果是3D场景,只需加上z轴坐标差的平方项即可。
第二步:确定缩放比例(分两种常见适配场景)
因为物体K原本是宽高均为1的正方形(或正方体),要“恰好适配A、B之间”,通常有两种常用的适配逻辑:
场景1:让物体沿AB方向的边刚好覆盖A到B
这种情况缩放比例直接等于AB的长度:scale_factor = distance_AB缩放后,物体沿AB方向的边长刚好等于AB,两端点会落在A、B上。如果是仅沿AB方向拉伸(非等比缩放),物体形状会变成矩形;如果是等比缩放,物体整体放大,直到沿AB方向的边长等于AB。
场景2:等比缩放物体,让物体的对角线刚好覆盖A到B
原物体的对角线长度是√2(2D),所以缩放比例为:scale_factor = distance_AB / √2这种情况下,缩放后的正方形对角线长度等于AB,两个对角顶点刚好落在A、B上,完美适配且保持正方形形状。
第三步:执行缩放操作
以已经居中的物体中心(也就是AB线段的中点M=(A+B)/2)为缩放原点,应用上面计算出的缩放比例对物体K进行缩放。
图示说明(2D场景)
居中完成后的初始状态:
A B ────────────────────── [□] (K的中心与AB中点重合)场景1缩放后的最终状态:
A B ────────────────────── [██████████████████] (K的两端对齐A、B,中心仍在中点)场景2缩放后的最终状态:
A B ────────────────────── ██████████████ ██ ██ ██ ██ ██ ██ ██████████████ (正方形的对角顶点刚好落在A、B上,中心不变)
内容的提问来源于stack exchange,提问作者Pol
相关产品推荐
相关产品推荐

