【发布时间】:2018-09-28 05:10:08
【问题描述】:
我正在尝试使用 raycast 旋转游戏对象。当我运行统一编辑器时出现错误
ArgumentException:索引超出范围。 UnityEngine.Input.GetTouch (Int32 索引)(在 /Users/builduser/buildslave/unity/build/artifacts/generated/bindings_old/common/Core/InputBindings.gen.cs:619) AdjustTransform.Update()(在 Assets/AdjustTransform.cs:27)
第 27 行是
Vector2 touchDeltaPosition = Input.GetTouch(0).deltaPosition;
在下面的代码中。我在这里做错了什么?
void Update()
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
Vector2 touchDeltaPosition = Input.GetTouch(0).deltaPosition;
if (Physics.Raycast(ray,out hit,100))
{
Debug.Log(" GO Name "+hit.collider.gameObject.name);
}
if( Input.touchCount == 2 && !EventSystem.current.IsPointerOverGameObject() )
{
hit.collider.gameObject.transform.Rotate(Vector3.up, -touchDeltaPosition.x * rotspeed * Time.deltaTime, Space.World);
hit.collider.gameObject.transform.Rotate(Vector3.right, touchDeltaPosition.y * rotspeed * Time.deltaTime, Space.World);
}
【问题讨论】:
-
Input.touchCount的值是多少? -
@mjwills...我把它作为 2.if 我用两根手指触摸。
-
如果你看到这个错误,那肯定是
0,按照下面的答案。