Unity如何生成随机数(设置种子)

文章目录

  • 随机类
  • 整数
  • 二维向量
  • 三维向量
  • 种子
  • 其他文章

随机类

我们可以使用Random类来生成一些随机数
Random类是用于生成随机数的类之一。它可以用于生成不同类型的随机数,如整数、浮点数和向量。

整数

我们可以使用Random.Range来生成指定范围内的随机整数或浮点数。下面举两个例子:

        // 随机生成一个浮点数float randomNumber = Random.Range(0f, 1f);Debug.Log("随机float: " + randomNumber);// 随机生成一个整数int randomInt = Random.Range(1, 10);Debug.Log("随机int: " + randomInt);

运行结果如下所示:
在这里插入图片描述

二维向量

使用Random.insideUnitCircle来获取一个单位圆内的随机二维向量。这个方法通常用于生成随机位置。代码如下所示:

        // 随机生成一个二维向量Vector2 randomVector2 = Random.insideUnitCircle;Debug.Log("随机Vector2: " + randomVector2);

运行结果如下所示:
在这里插入图片描述

三维向量

使用Random.insideUnitSphere获取一个单位球体内的随机三维向量。这个方法常用于生成随机方向和运动效果。

        // 随机生成一个三维向量Vector3 randomVector3 = Random.insideUnitSphere;Debug.Log("随机Vector3: " + randomVector3);

运行结果如下所示:
在这里插入图片描述

种子

如果有人玩过我的世界,可能会知道种子这个东西,我们在玩我的世界的时候,都知道地图是随机生成的,但是也知道,同一个种子会生成相同的地图,这是为什么呢?其实随机数生成是基于种子的计算,相同的种子将产生相同的随机序列。

Unity中的随机数生成也是基于伪随机数算法,也就是说,它们实际上是根据种子计算出来的确定性结果。这意味着相同的种子将始终生成相同的随机序列。

默认情况下,Random类的种子是基于系统时间的,但你也可以使用Random.InitState方法自定义设置种子。这个方法接受一个整数作为参数,用于初始化随机数生成器的种子。

    	public int seed = 12345;  // 自定义的种子值Random.InitState(seed);  // 设置种子// 根据自定义种子生成随机数float randomNum = Random.Range(0f, 1f);int randomInt = Random.Range(1, 10);Vector3 randomVector = Random.insideUnitSphere;Debug.Log("随机float: " + randomNum);Debug.Log("随机int: " + randomInt);Debug.Log("随机Vector: " + randomVector);

在上述示例中,我们首先定义了一个整数变量seed,用于存储自定义的种子值。然后,我们使用Random.InitState(seed)来设置种子。接下来,我们使用Random类的其他方法如Random.Range和Random.insideUnitSphere生成基于自定义种子的随机数。

多次运行,都会得到同样的结果:
在这里插入图片描述
通过自定义设置种子,你可以确保在相同的种子值下生成相同的随机序列。这在需要重现特定随机序列的情况下非常有用。但也需要注意,这可能导致一些问题,如随机事件的预见性或随机生成物体布局的重复性。因此,要根据你的项目需求,做好选择。

其他文章

Unity实现角色受到攻击后屏幕抖动的效果
Unity实现2D游戏跟随摄像机(平滑移动)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/91243.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows 安装CMake

CMake 简介 CMake是一个开源的、跨平台的自动化构建系統,用來管理软件构建的过程。 其用途主要包括: 1. 跨平台编译:CMake支援Windows,Mac OS,Linux等多种操作系統,且支援多数主流编译器如GCC&#xff0…

智能合约漏洞,Dyna 事件分析

智能合约漏洞,Dyna 事件分析 1. 漏洞简介 https://twitter.com/BlockSecTeam/status/1628319536117153794 https://twitter.com/BeosinAlert/status/1628301635834486784 2. 相关地址或交易 攻击交易 1: https://bscscan.com/tx/0x7fa89d869fd1b89e…

【STL巨头】set、map、multiset、multimap的介绍及使用

set、map、multiset、multimap的介绍及使用 一、关联式容器二、键值对键值对概念定义 三、setset的介绍set的使用set的模板参数列表set的构造set的迭代器set的容量emptysize set的修改操作insertfind && erasecountlower_bound 和 upper_bound Multiset的用法 四、mapm…

inndy_echo

inndy_echo Arch: i386-32-little RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x8048000)32位,只开了NX int __cdecl __noreturn main(int argc, const char **argv, const char **envp) {char s; // [espCh…

Unity2023打包首包从78Mb到3.0Mb-震惊-我做对了什么

(全程并没有使用AssetBundle , 历史原因,Resources目录还有不少资源残留) 曾经的我在2019打包过最小包10m左右,后来发现到了Unity2020之后暴增到40m,又加上2023版本URP,1个Unity输出包可能至少55M 如下图…

华为智能高校出口安全解决方案(3)

本文承接: https://qiuhualin.blog.csdn.net/article/details/133267254?spm1001.2014.3001.5502 重点讲解华为智能高校出口安全解决方案的攻击防御&安全运维&日志审计的部署流程。 华为智能高校出口安全解决方案(3) 课程地址攻击防…

基于Vue+ELement实现增删改查案例与表单验证(附源码)

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《ELement》。🎯🎯 &#x1…

孤举者难起,众行者易趋,openGauss 5.1.0版本正式发布!

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…

Java获取给定月份的前N个月份和前N个季度

描述: 在项目开发过程中,遇到这样一个需求,即:给定某一月份,得到该月份前面的几个月份以及前面的几个季度。例如:给定2023-09,获取该月份前面的前3个月,即2023-08、2023-07、2023-0…

基于微信小程的流浪动物领养小程序设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言系统主要功能:具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计…

IDEA 使用

目录 Git.gitignore 不上传取消idea自动 add file to git本地已经有一个开发完成的项目,这个时候想要上传到仓库中 Git .gitignore 不上传 在项目根目录下创建 .gitignore 文件夹,并添加内容: .gitignore取消idea自动 add file to git 在…

layuiselect设置为不可下拉选取

$("#exam").siblings(".layui-form-select").find("dl").remove(); 或 layuiSelectDisable($("#exam")); // 设置selet元素不可下拉选择function layuiSelectDisable(selectElem) {try {var dlElem selectElem.siblings(".layu…

通俗讲解深度学习轻量网络MobileNet-v1/v2/v3

MobileNet网络是由google团队在2017年提出的,专注于移动端或者嵌入式设备中的轻量级CNN网络。相比传统卷积神经网络,在准确率小幅降低的前提下大大减少模型参数与运算量。(相比VGG16准确率减少了0.9%,但模型参数只有VGG的1/32)。MobileNet网络…

时序预测 | MATLAB实现POA-CNN-GRU鹈鹕算法优化卷积门控循环单元时间序列预测

时序预测 | MATLAB实现POA-CNN-GRU鹈鹕算法优化卷积门控循环单元时间序列预测 目录 时序预测 | MATLAB实现POA-CNN-GRU鹈鹕算法优化卷积门控循环单元时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 MATLAB实现POA-CNN-GRU鹈鹕算法优化卷积门控循环单元时间序…

Spring Boot 技术架构图(InsCode AI 创作助手辅助)

Spring Boot 技术架构是一种用于构建现代应用程序的框架,它可以与各种前端、代理、网关、业务服务、中间件、存储、持续集成和容器服务集成在一起,以创建功能强大的应用程序。 源文件下载链接!!!!&#xff…

CMD命令终端快捷键学习

很多环境需要安装并且指定环境变量才可用终端访问 比如一些数据库、一些环境、例如:nodejs Oracle、mysql 在一个文件夹按住shift鼠标右键可以快速在当前目录运行终端!免去cd 目录的烦恼 快捷键 当你学习和使用命令终端(如 Windows 的 CMD&…

opencv图像数组坐标系

在OpenCV的Python接口(cv2)中,加载的图像数组遵循以下坐标系和方向约定: 1. **坐标系:** OpenCV的坐标系遵循数学中的坐标系,原点(0, 0)位于图像的左上角。横轴(X轴&…

抖音开放平台第三方代小程序开发,一整套流程

大家好,我是小悟 抖音小程序第三方平台开发着力于解决抖音生态体系内的小程序管理问题,一套模板,随处部署。能尽可能地减少服务商的开发成本,服务商只用开发一套小程序代码作为模板就可以快速批量的孵化出大量的商家小程序。 第…

CentOS 7 安装 Docker 的详细步骤

文章目录 Docker简介1.更新2.安装必要的软件包3.添加Docker仓库4.安装5.安装后的一些常规设置及常用的命令5.1 启动 Docker5.2 Docker 在系统启动时自动运行5.3 运行一个 Hello World 镜像5.4 查看docker运行状态5.5 docker ps5.6 查看docker版本 6.安装种常见的错误错误1:yum-…

【CMU15-445 Part-14】Query Planning Optimization I

Part14-Query Planning & Optimization I SQL is Declarative,只告诉想要什么而不需要说怎么做。 IBM System R是第一个实现query optimizer查询优化器的系统 Heuristics / Rules 条件触发 静态规则,重写query来remove 低效或者愚蠢的东西&#xf…