我做了这个脚本,让我的角色移动到我滑动的方向,它确实移动,但它是随机的,不管我的滑动方向,它会全速飞行。我如何解决这个问题?
它会以0.5f的速度移动到我挥击的方向。
我的代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Betu : MonoBehaviour
{
Rigidbody2D rb;
bool left;
bool right;
public int pixel;
// Start is called before the first frame update
void Start()
{
rb = GetComponent<Rigidbody2D>();
}
// Update is called once per frame
void Update()
{
if (Input.touchCount >1)
{
Touch finger = Input.GetTouch(0);
if (finger.deltaPosition.x > pixel)
{
right = true;
left = false;
}
if (finger.deltaPosition.x < -pixel)
{
right = false;
left = true;
}
}
if (right)
{
rb.position = new Vector2(rb.position.x + 0.5f, rb.position.y);
}
if (left)
{
rb.position = new Vector2(rb.position.x - 0.5f, rb.position.y);
}
}
}
1条答案
按热度按时间dgsult0t1#
你的问题是不断地更新球员的位置左右。你应该做的是添加布尔值来解决这个问题。
下面是你的代码的更新版本,请尝试它,让我知道如果你修复它。