当我向上滑动它时,我有一个正在运行的角色,经过一段时间它会自动回到地面。我需要在跳跃的同时添加变化,如果我向下滑动它应该很快就会在那一瞬间降下来。
private Vector3 fp;
private Vector3 lp;
private float dragDistance;
private List<Vector3> touchPositions = new List<Vector3>();
foreach (Touch touchi in Input.touches)
{
if (touchi.phase == TouchPhase.Moved)
{
touchPositions.Add(touchi.position);
}
if (touchi.phase == TouchPhase.Ended)
{
fp = touchPositions[0];
lp = touchPositions[touchPositions.Count-1];
if (Mathf.Abs (lp.x - fp.x) > dragDistance
|| Mathf.Abs (lp.y - fp.y) > dragDistance)
{
if (lp.y > fp.y)
{
jumpSpeed = 0;
enabled = InAir();
}
}
}
}
这是我的代码,但它不起作用,认为在触摸时甚至打印的一些错误也不适用于副作用。
答案 0 :(得分:0)
这是一个处理滑动的好片段:
void Update()
{
if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Moved)
{
Vector2 touchDeltaPosition = Input.GetTouch(0).deltaPosition;
if(touchDeltaPosition.y < 0)
{
//move character down here
}
}
}