当前位置: 首页 > 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.dtcms.com/a/325832.html

相关文章:

  • Mini-Omni: Language Models Can Hear, Talk While Thinking in Streaming
  • 数据库的基本操作(约束与DQL查询)
  • 分治-归并-912.排序数组-力扣(LeetCode)
  • 京东科技集团寻求稳定币链上活动规划师
  • 150V降压芯片DCDC150V100V80V降压12V5V1.5A车载仪表恒压驱动H6203L惠洋科技
  • shape转换ersi json 修改增加多部件要素处理和空洞处理
  • 安卓\android程序开发之基于 Android 的校园报修系统的设计与实现
  • Android.mk教程
  • RFID系统:物联网时代的数字化管理中枢
  • 算法训练营day45 动态规划⑫ 115.不同的子序列、583. 两个字符串的删除操作、72. 编辑距离、编辑距离总结篇
  • Java -- 集合 --Collection接口和常用的方法
  • (3万字详解)Linux系统学习:深入了解Linux系统开发工具
  • leetcode 15 三数之和
  • 【《数字货币量化交易:Linux下策略回测平台的搭建》】
  • 2025-2026 专升本论文写作【八项规范】
  • [202404-B]画矩形
  • 微信小程序常用 API
  • Arcpy-重采样记录
  • B站直播, 拼接4个窗口,能否实现
  • 从源码看 Coze:Agent 的三大支柱是如何构建的?
  • 【优化】图片批量合并为word
  • 嵌入式学习day24
  • MySQL的索引(索引的数据结构-B+树索引):
  • P2865 [USACO06NOV] Roadblocks G
  • 音视频学习(五十三):音频重采样
  • 数据备份与进程管理
  • AI大模型:(二)5.1 文生视频(Text-to-Video)模型发展史
  • Apache ECharts 6 核心技术解密 – Vue3企业级可视化实战指南
  • Apache Ignite 核心组件:GridClosureProcessor解析
  • ChatML vs Harmony:深度解析OpenAI全新对话结构格式的变化