【发布时间】:2020-01-09 14:35:44
【问题描述】:
我的方块破坏游戏中的动作似乎有点紧张,我不完全确定为什么。
任何帮助将不胜感激。
private Rigidbody2D rb;
public float speed = 10f;
public float movement;
void Start()
{
rb = GetComponent<Rigidbody2D>();
}
void Update()
{
movement = Input.GetAxis("Horizontal");
}
private void FixedUpdate()
{
rb.MovePosition(transform.position + (Vector3.right * speed * Time.deltaTime * movement));
}
【问题讨论】:
-
@3Dave docs 明确建议不要这样做:
For reading the delta time it is recommended to use Time.deltaTime instead because it automatically returns the right delta time if you are inside a FixedUpdate function or Update function.) -
你需要用物理控制你的东西(不知道英文名字)吗?对于一个方块破坏游戏,我真的看不出将它作为一个刚体的意义。你可能想要物理上的球而不是
-
@Jichael 对不起,我对脚本有点陌生。除了使用 Translate 之外,我看不到任何其他移动桨的方法,但我相信这不用于检测碰撞? youtube.com/watch?v=ixM2W2tPn6c
-
但是你的桨需要处理/检测碰撞吗?也许我错了,但我不明白这对游戏玩法有什么帮助。在一个方块破坏游戏中,我让它处理实际物理的唯一对象是球,但这只是初步猜测
-
@Jichael 我猜这个代码是为了用户移动屏幕下方的边框,以便不丢球,所以碰撞检测在这里是必不可少的;)桨本身不一定必须自己进行检测,但如果您不使用刚体移动它,其他刚体(球)也无法检测到碰撞!