在点击点创建新的照片

问题描述 投票:0回答:1

我想在我触摸照片的时候创建一个新的照片,我希望每次触摸都能完成,所以我在void Update()函数里面写了以下一行。

public Canvas cv;
public Image im; 

我已经定义了上面的UI元素。

for (var i = 0; i < Input.touchCount; ++i)
    {   Touch touch = Input.GetTouch(i);
        if (touch.phase == TouchPhase.Began)
        {
            Instantiate(im, Input.GetTouch(i).position, Quaternion.identity).transform.SetParent(cv.transform, false);
        }
    }

当我用unity远程应用程序尝试时,我在点击点上方3-4个手指处拍摄照片,问题出在哪里?

enter image description here

Vector2 scaleSomething()
{
    var screenPosition = Camera.main.WorldToScreenPoint(worldPosition);
    var scaler = cv.GetComponentInParent<CanvasScaler>();
    var guiScale = 1.0f;
         if (Mathf.Approximately(scaler.matchWidthOrHeight, 0.0f))
             guiScale = scaler.referenceResolution.x / (float) Screen.width;

         else if (Mathf.Approximately(scaler.matchWidthOrHeight, 1.0f))
             guiScale = scaler.referenceResolution.y / (float) Screen.height;
         return new Vector2(
             (screenPosition.x - (Screen.width* 0.5f)) * guiScale,
             (screenPosition.y - (Screen.height* 0.5f)) * guiScale);
}
c# unity3d unityscript
1个回答
0
投票

尝试在实例化后删除设置父级部分

编辑 当你将对象实例化为子元素时,它们会在局部空间被翻译成父元素。因为你的画布被拉伸了(在y上放大),你的子元素也在y上被放大,并且不在原位。

© www.soinside.com 2019 - 2024. All rights reserved.