我试图用最大的破折号长度对光标的位置进行冲刺/冲刺,我不知道该如何做,因为我对统一和编码非常陌生。
它将类似于这段代码,除非不是传送字符将破折号。
if (Physics.Raycast(ray, out hit, rayLength, layerMask) && Input.GetMouseButtonDown(1))
{
Vector3 hitPosition = new Vector3(hit.point.x, transform.position.y, hit.point.z);
player.transform.position = hitPosition;
}
发布于 2022-10-24 20:51:50
在youtube上搜索“统一中移动对象的不同方法”。我建议的建议是使用AddForce而不是Transform.Position。示例:
使用direction.
发布于 2022-10-25 07:17:31
使用AddForce
的解决方案可能如下所示:
// Gets executed, on every left click
if (Input.GetMouseButtonDown(0))
{
float force = 5f;
Rigidbody2D rb = GetComponent<Rigidbody2D>();
// Gets the position of your mouse cursor in world space
Vector3 direction = Camera.main.ScreenToWorldPoint(Input.mousePosition);
rb.AddForce(direction * force, ForceMode2D.Impulse);
}
您可以将其放入Update
方法中。
但是,请注意,您可能应该缓存Camera.main
和Rigidbody2D
。执行每一个帧的查找都是非常低效的。
您还可以/应该使force
成为检查器中可用的字段,这样您就可以根据自己的喜好轻松地调整它:)
https://stackoverflow.com/questions/74185982
复制相似问题