C# 物体不会连续移动
所以,当我按下左键单击一次时,我试图连续移动对象。但是我试过了,运气不好,有人能帮我吗谢谢 这是我的密码C# 物体不会连续移动,c#,unity3d,C#,Unity3d,所以,当我按下左键单击一次时,我试图连续移动对象。但是我试过了,运气不好,有人能帮我吗谢谢 这是我的密码 public class PlayerMovement : MonoBehaviour { private float speed; private Vector2 moveDir; public Transform target; private void Awake() { moveDir = new Vector2(-8, 0)
public class PlayerMovement : MonoBehaviour
{
private float speed;
private Vector2 moveDir;
public Transform target;
private void Awake()
{
moveDir = new Vector2(-8, 0);
speed = 0.5f;
}
void Update()
{
if (Input.GetMouseButton(0))
{
transform.LookAt(target, Vector3.zero);
transform.eulerAngles = new Vector3(0, 0, -45f);
moveDir.x += speed;
moveDir.y += speed;
transform.position = new Vector2(moveDir.x, moveDir.y);
}
if (Input.GetMouseButton(1))
{
transform.LookAt(target, Vector3.back);
transform.eulerAngles = new Vector3(0, 0, -135f);
moveDir.x += speed;
moveDir.y -= speed;
transform.position = new Vector2(moveDir.x, moveDir.y);
}
}
}
我不确定你是否想给你的movedir每帧增加速度,例如,在一秒钟内,你可以每帧移动100个单位。。。。那么,你想单击一次,它仍在移动,还是在鼠标按下时仍在移动?我想单击一次,它仍在移动@BugFinderso使用getmousebuttondown,这样它就只有被按下的帧了,让它设置它的移动方式,然后以任何已经存在的速度每帧移动一次set@BugFinder如何在每帧中移动它。出于某种原因,idk应该在哪里放置时间。deltatimome在任何ifs之外移动,因此它每帧都会发生。。通常,移动量乘以deltatime。
public class PlayerMovement : MonoBehaviour
{
bool moveLeft = false;
void Update()
{
if (Input.GetMouseButton(0))
{
moveLeft = true;
}
if(moveLeft)
{
//Your Movement Code
}
}
}