Unity中的运动(一)——滑动小球

本文介绍了在Unity中实现滑动小球的运动控制,包括设置场景、读取玩家输入、归一化输入向量、约束输入向量、控制速度和约束位置。通过控制速度和加速度,结合Time.deltaTime实现稳定运动,并通过Rect结构和Mathf.Clamp限制小球的移动范围。同时,讨论了反弹和速度调整的策略。
摘要由CSDN通过智能技术生成

1.控制位置

1.1设置场景

​ 创建一个平面和一个球体,将摄像机放到平面上方,使用正交视角,关闭球体的投射阴影
在这里插入图片描述

分别为球体和平面创建材质,并为球体的移动轨迹创建材质,同时为球体创建一个移动脚本
在这里插入图片描述

将MovingSphere和Trail Renderer组件挂到球体上,Trail Renderer可以标记出物体运动的轨迹
在这里插入图片描述

将轨迹材质附加到Trail Renderer组件的材质上面,设置轨迹宽度和颜色,在预览里拖动
在这里插入图片描述

1.2 读取玩家输入

由于是平面移动所以用vector2储存玩家输入,将x,和y初始化为0,使他们将球体固定在XZ平面上,y的输入相当于z

    Vector2 playerInput;
    private void Start()
    {
        playerInput.x = 0;
        playerInput.y = 0;
    }

    void Update()
    {        
        playerInput.x = Input.GetAxis("Horizontal");
        playerInput.y = Input.GetAxis("Vertical");       
        transform.localPosition = new Vector3(playerInput.x, 0, playerInput.y);
    }

调用方法Input.GetAxis作为输入。我们将水平值用于X,将垂直值用于Y。默认通过WASD控制输入,演示如下

在这里插入图片描述

1.3 归一化输入向量

轴在静止时返回零,而在极限时返回-1或1。当我们使用输入来设置球体的位置时,它被约束为具有相同范围的矩形。至少,按键输入就是这种情况,因为每次按键是独立的。如果是摇杆,则是连续的,通常我们在任何方向上都被限制为距原点的最大距离为1,从而将位置限制在一个圆内。

控制器输入的优点是,无论方向如何,输入向量的最大长度始终为1。因此,各个方向的移动速度都可以一样快。按键不是这种情况,单个按键的最大值为1,而同时按下两个按键的最大值为√2,这意味着对角线移动最快。

通过将输入矢量除以其大小,可以确保矢量的长度永远不会超过1。结果始终为单位长度矢量,除非

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值