Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d 在2个矢量和3个统一用户界面之间拉伸_Unity3d - Fatal编程技术网

Unity3d 在2个矢量和3个统一用户界面之间拉伸

Unity3d 在2个矢量和3个统一用户界面之间拉伸,unity3d,Unity3d,我使用的代码是 public void Strech(GameObject sprite, Vector3 initialPosition, Vector3 finalPosition) { Vector3 centerPos = (initialPosition + finalPosition) / 2f; sprite.transform.position = centerPos; Vector3 direction = finalPosition - initi

我使用的代码是

public void Strech(GameObject sprite, Vector3 initialPosition, Vector3 finalPosition)
{
    Vector3 centerPos = (initialPosition + finalPosition) / 2f;

    sprite.transform.position = centerPos;

    Vector3 direction = finalPosition - initialPosition;
    direction = Vector3.Normalize(direction);
    sprite.transform.right = direction;

    distance = Vector3.Distance(initialPosition, finalPosition);

    Debug.DrawLine(initialPosition, finalPosition);

    sprite.GetComponent<RectTransform>().sizeDelta = new Vector3(distance, 40f);
}
public void Strech(游戏对象精灵、向量3初始位置、向量3最终位置)
{
向量3中心位置=(初始位置+最终位置)/2f;
sprite.transform.position=中心位置;
矢量3方向=最终位置-初始位置;
方向=矢量3.规格化(方向);
sprite.transform.right=方向;
距离=矢量3.距离(初始位置、最终位置);
调试.绘制线(初始位置,最终位置);
sprite.GetComponent().sizeDelta=新矢量3(距离,40f);
}
我似乎不明白为什么图像不会平铺到UI对象的任何一个中心或从中平铺

我做错了什么?我在更新循环中调用拉伸函数。 红线本身是UnityEngine.UI图像类型

我希望图像按Debug.DrawLine所示平铺

编辑1:下面是rect的显示方式

我修好了!
我必须乘以缩放因子,因为画布使用的是参考分辨率为1280 x 720的画布缩放器

你在inspector中的图像类型是什么?我的图像类型是平铺图像的矩形变换拉伸了吗?你能点击你的图片并显示你的直肠的结果吗?在我的原始帖子中添加了一个屏幕截图作为编辑。两点之间的距离是136吗?我的意思是图像rect(在编辑器中使用rect工具)是正确的,或者它的计算有问题