【3.使用脚本开发游戏】3.编写脚本并挂载

内容分享20小时前发布
0 0 0

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;
    }
}

运行游戏,检查效果。

© 版权声明

相关文章

暂无评论

none
暂无评论...