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

news2024/10/6 10:30:58

文章目录

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

随机类

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

整数

我们可以使用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.coloradmin.cn/o/1048814.html

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

相关文章

【Verilog 教程】6.5 Verilog避免Latch

关键词:触发器,锁存器 Latch 的含义 锁存器(Latch),是电平触发的存储单元,数据存储的动作取决于输入时钟(或者使能)信号的电平值。仅当锁存器处于使能状态时,输出才会随着…

虹科Pico汽车示波器诚邀您加入精准诊断时代,助您成为修车大师!

虹科Pico汽车示波器的口号是: 面向未来诊断,定义精准时代 淘汰人的是工具从来不是年龄!虹科Pico汽车示波器能够让您掌握现代的诊断工具,让您更高效的诊断故障原因。 我们有专业的设备与优质的技术服务!让每个用户自…

卷麻了,00后测试用例写的比我还好,简直无地自容。。。

前言 作为一个测试新人,刚开始接触测试,对于怎么写测试用例很头疼,无法接触需求,只能根据站在用户的角度去做测试,但是这样情况会导致不能全方位的测试APP,这种情况就需要一份测试用例了,但是不…

Cruise 从零搭建模型

第一步,新建一个project: 下面添加version: 将该新建的task加载进来,然后保存: 保存完之后,文件夹内多了很多内容: 可以看出,用这种方法,只能建立两层文件夹,…

LeetCode —— 回溯

77. 组合 给定两个整数 n 和 k&#xff0c;返回范围 [1, n] 中所有可能的 k 个数的组合。 示例&#xff1a;输入&#xff1a;n 4, k 2 输出&#xff1a; [ [1,2], [1,3], [1,4], [2,3], [2,4], [3,4]] class Solution {List<List<Integer>> list new…

【面试经典150 | 数组】H 指数

文章目录 写在前面Tag题目来源题目解读解题思路方法一&#xff1a;排序方法二&#xff1a;二分方法三&#xff1a;计数排序 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&am…

java-普通项目中多个模块间的引用

背景&#xff1a; 项目下面有一个common的模块&#xff0c;其他模块引用 现象&#xff1a; 当class文件直接在src下面的时候 其他模块引用解析不了 当class文件在allUtils的时候是可以解析的

外包公司干了2个月,整个人不思进取了...

先说一下自己的情况&#xff0c;本科生&#xff0c;19年通过校招进入深圳某软件公司&#xff0c;干了接近3年的功能测试&#xff0c;今年8月份&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了三年的功能测试…

我用PYQT5做的第一个实用的上位机项目(二)

从这篇开始&#xff0c;复盘整个的过程&#xff0c;做一个记录。 首先&#xff0c;制作一些自定义的常用部件&#xff0c;原生的部件很粗糙。 一、按钮的图片资源&#xff1a;用绘图软件&#xff08;例如AI、coreldraw、PS等&#xff0c;看自己的熟悉程度&#xff09;制作按钮…

泰国数字加密平台Bitkub创始人到访和数集团:以数字化创新探索科技前沿密码

9月21日&#xff0c;泰国数字加密货币交易平台Bitkub创始人兼首席执行官&#xff08;CEO&#xff09;Jirayut Srupsrisopa (Topp)先生到访上海和数集团&#xff0c;在和数集团董事长唐毅陪同下实地参观了和数集团上海总部&#xff0c;听取了和数集团在引领前沿数字化创新&#…

怒刷LeetCode的第18天(Java版)

目录 第一题 题目来源 题目内容 解决方法 方法一&#xff1a;置换 方法二&#xff1a;哈希集合 方法三&#xff1a;递归 第二题 题目来源 题目内容 解决方法 方法一&#xff1a;双指针法 方法二&#xff1a;动态规划 方法三&#xff1a;栈 方法四&#xff1a;两…

数字乡村包括哪些方面?数字乡村应用介绍

数字乡村是指利用物联网、数字化和智能化技术&#xff0c;借助现代数字智能产品、高效信息服务和物联网基础设施&#xff0c;以提高农村居民生活质量&#xff0c;助力拓展经济发展前景。 创建数字村庄有助于缩小城乡社区之间的差距&#xff0c;保障每个人都能平等地享受科技发展…

LabVIEW开发低成本静脉监测和控制输液系统

LabVIEW开发低成本静脉监测和控制输液系统 信息技术的使用和进步彻底改变了现代医疗保健的面貌。医院、疗养院和其他姑息治疗院需要不同的人力资源&#xff0c;如医生、技术人员、护士和其他工作人员&#xff0c;他们共同提供最先进的医疗保健。COVID-19大流行表现出严重缺乏此…

安全厂商安恒信息加入龙蜥社区,完成 与 Anolis OS 兼容适配

近日&#xff0c;杭州安恒信息技术股份有限公司&#xff08;以下简称“安恒信息”&#xff09;签署了 CLA&#xff08;Contributor License Agreement&#xff0c;贡献者许可协议&#xff09;&#xff0c;正式加入龙蜥社区&#xff08;OpenAnolis&#xff09;&#xff0c;并成为…

2023-9-27 JZ77 按之字型顺序打印二叉树

题目链接&#xff1a;按之字型顺序打印二叉树 import java.util.*;/** public class TreeNode {* int val 0;* TreeNode left null;* TreeNode right null;* public TreeNode(int val) {* this.val val;* }* }*/public class Solution {/*** 代码中的类名、方…

阿里云服务器企业级独享和共享型有什么区别?

阿里云ECS云服务器共享型和企业级有什么区别&#xff1f;企业级就是独享型&#xff0c;共享型和企业级云的主要区别CPU调度模式&#xff0c;共享型是非绑定CPU调度模式&#xff0c;企业级是固定CPU调度模式&#xff0c;共享型云服务器在高负载时计算性能可能出现波动不稳定&…

恋爱聊天追女神沟通话术小程序开发演示

现在什么最有市场&#xff1f;婚恋、交友、恋爱…… 单身多需求就自然而然的产生了&#xff0c;而且还很大。我们可以搜素查看各平台这类项目的流量&#xff0c;基本都不低。 因此针对细分领域开发两款恋爱聊天沟通话术小程序&#xff0c;一款为本地数据版&#xff0c;一款为…

携手华为使能全场景创新,夯实算力底座,麒麟信安受邀参加华为全联接大会2023

智能化浪潮正奔腾而来&#xff0c;驱动千行百业锚定新航向、跑出加速度。日前&#xff0c;第八届华为全联接大会&#xff08;HUAWEI CONNECT 2023&#xff09;在上海举办。大会邀请思想领袖、商业精英、技术专家、合作伙伴、开发者等业界同仁&#xff0c;从商业、产业、生态等方…

设计模式1、单例模式 Singleton

解释说明&#xff1a;确保一个类只有一个实例&#xff0c;并提供一个全局访问点来访问这个唯一实例 要点如下 有且仅有一个实例 必须自行创建自己的唯一实例 必须给所有其他对象提供这一实例 具体实现要点如下 提供一个 private 构造函数&#xff08;防止外部调用而构造类的实例…

还在用 !=null 判空?让我们用Java8的全新API去优化代码吧

当我们编写Java代码时&#xff0c;经常需要处理空值&#xff08;null&#xff09;&#xff0c;因为空值可能导致NullPointerException异常&#xff0c;这是一个常见的运行时异常。在Java 8中&#xff0c;引入了Optional类来更优雅地处理可能为空的值&#xff0c;从而减少NullPo…