RectTransform位于“空间 - 覆盖”中绘制的Canvas-HUD中,它实际上接收指针/触摸事件,它还将RectTransform放置在正确的位置,它只是精灵没有动。
下面'我放在Update()函数中的代码:
foreach (Touch t in Input.touches) { // check all the touches
if (t.position.x >= Screen.width/2) { // if it's on the right half of the screen
if (t.phase == TouchPhase.Began) { // if has just began pressing
aimCenter = t.position; // set position
Vector2 pos = new Vector2 (aimCenter.x / (float)Screen.width,aimCenter.y / (float)Screen.height); // calculate anchor position
actionHandler.SetPosition (pos.x - .08f, pos.y - .14f, pos.x + .08f, pos.y + .14f); // apply anchor position (the function just sets anchorMax and anchorMin, then sets offsets to 0
actionHandler.gameObject.SetActive (true); // make visible
}
}
if (canMove && t.position.x < Screen.width/2) { // same as above but for the left half of the screen
if (t.phase == TouchPhase.Began) {
movCenter = t.position;
Vector2 pos = new Vector2 (t.position.x / Screen.width, t.position.y / Screen.height);
directionHandler.SetPosition (pos.x - .08f, pos.y - .14f, pos.x + .08f, pos.y + .14f);
directionHandler.gameObject.SetActive (true);
}
}
}
代码的最终目标是在手指开始触摸的位置显示2个精灵,并保持在那里直到手指在屏幕上。 代码第一次运行,没有问题,但是当我尝试再次在精灵中触摸屏幕仍然处于相同的位置或更好时:它是同一个&#34;旧&#34;位置,而从编辑器,我可以看到锚点的实际位置是正确的
我该如何解决这个问题?
我还尝试使用RectTransform.sizeDelta
并通过.localPosition
设置位置,但我遇到了同样的问题
此外,当我尝试在屏幕的同一侧使用2个手指时,精灵实际上会被绘制到应该的位置!
如果你想在这里尝试实时版本the published app