当前位置: 首页 > news >正文

Unity笔记(五)知识补充——场景切换、退出游戏、鼠标隐藏锁定、随机数、委托

写在前面:

写本系列(自用)的目的是回顾已经学过的知识、记录新学习的知识或是记录心得理解,方便自己以后快速复习,减少遗忘。主要是C#代码部分。

十七、场景切换和退出游戏

1、场景切换

场景切换使用方法: SceneManager.LoadScene(),括号里传入场景名称。

需要引用命名空间using UnityEngine.SceneManagement;

需要注意的是:直接写代码切换场景可能会报错,因为还需要把该场景加载到场景列表中。

在上方菜单栏File中选中Build Settings,在这里加载场景即可:

之后使用这段代码就可以实现按下空格切换场景:

using UnityEngine.SceneManagement;
void Update()
{if(Input.GetKeyDown(KeyCode.Space)){SceneManager.LoadScene("Scene2");}
}

2、退出游戏

退出游戏使用:Application.Quit();

但是在编辑模式下没有作用,一定是发布游戏后才有用:

void Update()
{if(Input.GetKeyDown(KeyCode.Escape)){Application.Quit();}
}

十八、鼠标隐藏锁定相关

1、隐藏鼠标

隐藏鼠标很简单,使用Cursor.visible = false即可:

void Start()
{Cursor.visible = false;
}

2、锁定鼠标

Unity为锁定鼠标也提供了相应的API。

使用:Cursor.lockState = CursorLockMode,共有三个枚举参数:

None,不锁定

Locked锁定,鼠标会被限制在屏幕中心点。不仅会被锁定,还会被隐藏,可以通过esc键摆脱

Confined锁定,限制在窗口范围内,同样也是通过esc键摆脱

void Start()
{Cursor.lockState = CursorLockMode.None;
}

3、设置鼠标图片

设置鼠标图片使用:Cursor.SetCursor(),可以传入三个参数:

参数一:光标图片,图片需要是半透明或者在Inspector窗口中改成光标模式。传入的图片如果宽高相同就不会被压缩

参数二:偏移位置 相对图片左上角

参数三:平台支持的光标模式(硬件或软件),一般不改变,使用自动模式

public Texture2D tex;
void Start()
{Cursor.SetCursor(tex, Vector2.zero, CursorMode.Auto);
}

十九、随机数和Unity自带委托

1、随机数

Unity中随机数生成使用:Random.Range(),例如,生成0~99之间的随机整数:

int randomNum = Random.Range(0, 100);这里不包含最右边的100

假如是生成随机浮点数,左右都包含,如生成1.1~99.9之间的随机浮点数:

float randomNumF = Random.Range(1.1f, 99.9f);

这是Unity命名空间中的随机数生成,与C#命名空间的随机数生成不一样。如果还想使用C#中的生成方法,需要指明命名空间。如下例所示:

void Start()
{//0~99之间的随机数int randomNum = Random.Range(0, 100);print(randomNum);//左右都包含float randomNumF = Random.Range(1.1f, 99.9f);//C#中的,基本不用System.Random r = new System.Random();r.Next(0, 100);
}

2、委托

Unity中的委托和C#委托的用法基本一致,只是使用的方法名不同:UnityAction,这个暂做了解看到了知道是委托就行。

using UnityEngine.Events;
void Start()
{UnityAction uac = () =>{};UnityAction<string> uac1 = (s) =>{};
}
http://www.lryc.cn/news/617585.html

相关文章:

  • 前端面试:promise...then与asnyc ...await
  • 简单了解MongoDB数据存储
  • ‌太钢建材:筑就未来,品质见证
  • 软考倒计时 巧用芝麻倒计时软件 助力高效备考 有效提升备考效率
  • DNS(域名系统)
  • 关于线性DP模板
  • 月报 Vol.02:新增条件编译属性 cfg、#alias属性、defer表达式,增加 tuple struct 支持
  • 基于OpenCV的实时美颜技术:从传统算法到深度学习融合实现
  • 基恩士 CA CNX10U 视觉连接器REPEATER CA CN or CV- C 日本原装进口
  • 【软考中级网络工程师】知识点之 TCP 协议深度剖析
  • 嵌入式第二十五课!!!文件读写操作补充与应用、以及文件流定位相关函数接口
  • idea没有 Active Profiles 的填写位置
  • 企业级 IT 运维服务平台数据备份方案:基于 rsync 的自动化实现
  • 视觉相机偏移补偿
  • 在macOS上扫描192.168.1.0/24子网的所有IP地址
  • 初识影刀:将多个相同格式EXCEL中内容汇总到一个EXCEL文件中去
  • Camera open failed
  • 在Linux中模拟配置高性能web服务器
  • gophis钓鱼
  • 掌握while循环:C语言编程基础
  • [动态规划]最长公共子序列(LCS)
  • golang 基础案例_01
  • Go选手如何快速上手第三方库
  • Springboot-vue 地图展现
  • JDK21虚拟线程和 Golang1.24协程的比较
  • 《姜妮与Veda的最后一次传输》
  • 李宏毅2025《机器学习》-第十讲:AI“思想钢印”:深入解析大模型的知识编辑技术
  • 秒懂边缘云|1分钟了解边缘安全加速 ESA
  • 机器学习——K-means聚类
  • 第9节 大模型分布式推理核心挑战与解决方案