3.编写脚本并挂载
3.1 创建脚本
第一,在工程窗口中右击,选择 Create -> C# Script,输入脚本名称:Controller。然后双击脚本启动 VS Code 后编写脚本。
按照前面的设计,该游戏只需要编写一个控制器脚本,实现的功能是当数组单击转盘时,转盘旋转,然后逐步减速至停止。所以,在脚本中需要实现两个功能:
- 检测鼠标动作
- 使转盘旋转
1.检测鼠标的输入
在 Unity 中,通过 Input 类的方法可以检测鼠标的输入,分别是:
- GetMouseButtonDown – 当按下鼠标时
- GetMouseButtonUp – 当松开鼠标时
- GetMouseButton – 鼠标被按下期间
参数为整型,0-表明左键,1-右键;
返回值为布尔型,true 或者 false。
2.使转盘旋转
可以使用 transform 的 Rotate 方法来使转盘旋转,该方法的参数依次是绕 x 轴、y 轴、z 轴方向的旋转量。参数为正表明逆时针旋转,否则为顺时针旋转。
3.2 编写脚本
脚本如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Controller : MonoBehaviour
{
float speed = 0.0f;// 旋转速度
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
// 检测鼠标左键是否被按下,按下则设置旋转速度
if (Input.GetMouseButtonDown(0)) {
this.speed = -10;
}
// 使挂载的对象旋转
transform.Rotate(0,0,speed);
}
}
在 Update 方法中编写脚本,无论在哪一帧上玩家只要按下鼠标左键就会被执行。
3.3 挂载脚本
将脚本拖拽到层级窗口中的转盘对象上。
运行游戏,在转盘上按下鼠标左键,即可看到转盘旋转起来了,但不会停止。
3.4 让转盘停止旋转
如何让转盘停止旋转呢?肯定是减速。如果每次让速度变量减去一个固定的值,转盘的旋转速度就呈线性递减,动作不是很自然的,通过在每一帧上乘以一个系数,速度的递减就不是线性的,而是按指数函数衰减,这样,减速的过程就很自然,这个系统可以称之为衰减系数。
通过衰减系数实现减速的方法,在处理空气阻力、弹簧震动的问题时也特别有效。
代码中增加衰减系统的处理,如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Controller : MonoBehaviour
{
float speed = 0.0f;// 旋转速度
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
// 检测鼠标左键是否被按下,按下则设置旋转速度
if (Input.GetMouseButtonDown(0)) {
this.speed = -10;
}
// 使挂载的对象旋转
transform.Rotate(0,0,speed);
// 速度递减
this.speed *= 0.99f;
}
}
运行游戏,检查效果。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...