003_碰撞消抖

003_碰撞消抖

通过获取刚体组件的位置消抖

public class RubyController : MonoBehaviour
{
    // 将速度暴露出来,使其可调
    public float speed = 4f;

    //声明刚体对象
    Rigidbody2D rigidbody2D;
    //获取用户输入
    float horizontal;
    float vertical;

    // 在第一次帧更新之前调用 Start
    void Start()
    {
        //获取当前游戏对象的刚体组件
        rigidbody2D = GetComponent<Rigidbody2D>();
    }

    // 每帧调用一次 Update
    void Update()
    {
        /* 根据按键移动上下左右的位置:每帧移动0.1 */
        //获取水平输入,按向左会获得-1.0f,按向右会获得1.0f
        horizontal = Input.GetAxis("Horizontal");
        //获取垂直输入按向下会获得-1.0f,按向上会获得1.0f
        vertical = Input.GetAxis("Vertical");
    }

    //固定时间间隔执行的更新方法,0.02秒执行一次
    private void FixedUpdate()
    {
        //获取对象当前位置
        Vector2 position = rigidbody2D.position;
        //更改位置,Time.deltaTime 每帧的时间间隔,float 类型
        position.x = position.x + speed * horizontal * Time.deltaTime;
        position.y = position.y + speed * vertical * Time.deltaTime;
        //新位置给游戏对象
        rigidbody2D.position = position;
    }

}

Fixedupdate方法执行时间可以在Unity中设置

image-20241201233646938

posted @ 2024-12-29 21:09  爱吃冰激凌的黄某某  阅读(10)  评论(0)    收藏  举报