随手记3:C#Unity中随机数的使用

2023-10-26

问题:在同时引用UnityEngine和System命名空间时【using UnityEngine(继承MonoBehaviour类+)+using System(用到了浮点数转字符串的Convert函数)】,如果直接Random.Range(float1float2)会出现“Random”是“UnityEngine.Random”和“System.Random”之间的不明确的引用的报错

解决方法:在前面加上到底使用哪个Random,即UnityEngine.Random.Range(float1float2)或者先System.Random r = new System.Random(); 再调用r.Next(int1,int2);

注:System.Random需要实例化才能随机,而UnityEngine.Random是直接使用。

Random.Range以及Random.value,前者是方法,后者是变量

补充:除了需要随机数之外,可能会有保留上次随机结果的需求,换句话说,从某一时刻起,我们希望每次都能随机出和上次相同的结果,这个时候就该随机种子出场了。

随机种子就是一个种子对应着一个结果,随机种子对应的就是一个唯一的随机结果。

  • 在使用UnityEngine库时

seed = PlayerPrefs.GetInt("Seed");

//修改种子数,用到System.DateTime.Now.Ticks来保证得到和上次的种子绝不相同的整型

PlayerPrefs.SetInt("Seed", (int)System.DateTime.Now.Ticks);

//每次随机生成不同的序列

Random.Range(int1,int2 );

用法:在某次发现了随机产生的其他Bug,这样我只要我只用启动Debug模式反复分析几遍后把复现的隐藏Bug修改结束后再回到正常模式产生新的随机数就好。

(以是否开启启动Debug模式作为判断,若开启则seed = PlayerPrefs.GetInt("Seed")数据不变,关闭Debug模式时PlayerPrefs.SetInt("Seed", (int)System.DateTime.Now.Ticks)数据改变)

  • 在使用UnityEngine库时

一个构造方法带有随机种子的参数,一个则没有,原理和上面是一样的:

public Random();

public Random(int Seed);

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

随手记3:C#Unity中随机数的使用 的相关文章

  • 使用 OpenXML 打开受保护的 Word 文档

    我到处寻找 但找不到任何答案 所有帖子和讨论都是关于创建受保护的帖子和讨论 但没有任何内容可以打开它 我在我的 c 程序中保护了 DOCX 和 DOC 文档 并希望使用 OpenXML 2 5 以编程方式打开它们 我已经使用 Office
  • 插入多重集中:在该值第一次出现之前而不是最后一次出现之后

    正如标题所示 multiset 在所有相同值的范围末尾插入一个值 例如 在多重集中插入 21 2 2 3做到了1 2 2 new 2 3 如何在所有相同值的范围开头插入新值 例如 在多重集中插入 21 2 2 3应该使1 new 2 2 2
  • 动态库使用静态库,出现未定义的符号

    我一直在寻找解决问题的方法 只是得到了一些线索 但我找不到任何一致的解决方案 我有一个动态库 libdyna so 的代码 它使用3个静态库 libone a libtwo a lib Three a 和log4cpp库的功能 当我第一次构
  • 在 C# 中格式化 Resharper 属性的支持字段

    有没有办法控制 Resharper 放置其支持字段的位置 目前 它试图让他们在班级中名列前茅 我希望他们能去到酒店的正上方 还没有
  • asm、asm 易失性内存和破坏性内存之间的区别

    在实现无锁数据结构和定时代码时 通常需要抑制编译器的优化 通常人们使用asm volatile with memory在 clobber 列表中 但有时你会看到asm volatile或者只是一个简单的asm破坏记忆 这些不同的语句对代码生
  • 嵌套绑定表达式

    这是一个后续问题我之前的问题 https stackoverflow com questions 2735294 templates function pointers and c0x include
  • 改装和授权标头

    目前 我正在向我的请求添加授权标头 如下所示 文件 SomeFile cs public interface ITestApi Get api test id Task
  • 安装/编译 pylzma(lzma python 绑定)

    我已经向作者提出了这个问题website http www joachim bauch de projects pylzma comment page 1 comment 5211 但我想我也可以在这里问 我一直在尝试使用以下设置安装 py
  • 值类型数组如何存储在 .NET 对象堆中?

    在 NET中 诸如int之类的值类型对象存储在内存中 引用类型对象需要为引用和对象单独分配内存 并且对象存储在 NET对象堆中 而Array是在堆中创建的 那么int 等值类型的数组如何存储在堆中呢 这是否意味着值类型对象可以存储在堆中而无
  • 除非我在开​​始时声明变量,否则为什么会收到“错误未声明的标识符”?

    当我有以下情况时 include stdafx h include
  • llvm clang 编译器上的dynamic_cast失败

    我看到一个奇怪的失败dynamic cast正在返回NULL在 clang 编译器上 但相同的代码可以在 gcc 环境下运行 您能否指出根本原因是什么 之间可能有什么区别dynamic cast关于 llvm 和 gcc 我正在使用两个编译
  • WiX 安装程序在 vs 2012 上不起作用

    我想为我的应用程序创建一个安装程序 我已经下载了 WiX 3 6 并将其安装在 vs 2012 上 创建简单的winform应用程序 将 WiX 安装项目添加到我的解决方案中 右键单击参考并将我的 winform 应用程序添加到安装程序的参
  • 作为服务运行时,URLDownloadToFile() 将对象写入缓存中

    我有一个软件 可以将图像下载到工作目录中 然后对其进行处理以创建视频 之后 这些文件将被独立脚本删除 问题是它还将文件写入以下目录 该软件作为系统服务运行 C Windows SysWOW64 config systemprofile Ap
  • Pythonlibs3 CMake 和 macOS

    更新2 将以下两行添加到我的 CMake 文件中时 成功找到了 python 3 及其库 这只在终端中工作的原因是因为 CLion 使用其捆绑版本的 CMake 3 6 3 而我的终端使用的更新版本 3 7 2 正确找到了 python F
  • Web API 2 c# 中的 Google reCaptcha

    我有一个 ASP NET Web API 2 项目 我正在尝试从表单中读取 Google Captcha 我尝试了这段代码 public string Post FoundingRequest model var response Requ
  • Cmake:在自定义目录中查找 protobuf 包

    我有 cmake 3 10 x 并下载了当前的 protobuf 源 3 6 1 使用 cmake 我创建了 bin 目录 PROTOBUF SOURCE DIR bin 在其中成功构建了该库 下一步我想在我的基于 cmake 的项目中使用
  • SQlite 查询 - 如何检索多列数据?

    我很难在网上找到一个关于使用 xcode 和 cocos2dx 从 SQlite DB 获取多个值的工作示例 这是我的sql查询 char sql query 100 sprintf sql query SELECT FROM SQList
  • 类型与创建 CLR 存储过程不匹配

    我在程序集中有一个如下所示的方法 namespace MyNameSpace public class MyClass Microsoft SqlServer Server SqlProcedure public static void M
  • 找出用户属于哪些组

    我有一个刚刚创建的 Windows 用户帐户 以 XYZ 为例 此 XYZ 属于我在计算机管理 gt 本地用户和组中创建的用户组和自定义组 因此 在属性中我看到该用户属于 2 个组 现在我想获取这些组并显示它们 有什么建议么 我已经这样做了
  • Interlocked.CompareExchange 可以抛出 NullReferenceException 吗?

    From https msdn microsoft com en us library bb297966 v vs 110 aspx https msdn microsoft com en us library bb297966 v vs

随机推荐

  • Dynamics CRM 2015 Update 0.1 - Error.ActionFailed Microsoft.Crm.Tools.Admin.InstallDatabaseUpdatesAc

    安装最新的Update 0 1 CRM2015 Server KB3010990 ENU amd64 之后 发生数据库无法更新的问题 重新访问CRM之后可以看到服务器已经被更新到7 0 1但数据库仍然停留在7 0 0 错误日志如下 Micr
  • Python

    目录 系列目录 原项目地址 8 常用数据结构之列表 列表的运算符 补充 切片及索引介绍 索引的一般方式 切片操作的基本表达式 object start end step 切片操作的 详细切法 列表的比较运算 列表元素的遍历 方法一 方法二
  • 不开心的小朋友

    华为23年7月od笔试题第三题 不开心的小朋友 题目已忘记 但大题意思是 输入一个数代表摇摇车的数量 在下一行输入一串数字 用空格隔开 每个数字代表不同的小朋友的编号 小朋友的编号不能重复 每个小朋友只有一个编号 小朋友排队坐摇摇车 如果小
  • 大管家前端线上笔试

    1 盒子模型 盒子模型 我们把网页中的各个部分都看成一个盒子 盒子由外到内包括外边距 margin 边框 border 内边距 padding 内容 content 两种盒子模型 标准盒子模型 默认盒子模型 width boder padd
  • 【Python技巧】正则表达式:(?:)匹配多个字符串之一;(非获取匹配)

    当需要匹配多个字符串其中之一时 如 匹配 你 我 她 他 四个字符串之一时 使用非元组捕获语 exp 例子 import re content2 我市政协 我爱协商 新平台建设工作的加强与落实 搭建 协商在民主 新模式 推进 协商朋友圈 协
  • 【第3篇】GooLeNet——Inception结构的开创者

    文章目录 摘要 1 引言 2 近期工作 3 动机和高层思考 4 架构细节 5 GoogLeNet 6 训练方法 7 ILSVRC 2014分类挑战赛设置和结果 8 ILSVRC 2014检测挑战赛设置和结果 9 总结 摘要 我们在Image
  • 5.Linux删除文件和目录

    在 Linux 中 可以使用 rm 命令来删除文件和目录 文件夹 下面是一些常见的删除操作及其示例 删除单个文件 使用 rm 命令加上要删除的文件名称即可 rm filename 删除名为 filename 的文件 删除多个文件 可以同时删
  • Maven中DependencyManagement和Dependencies区别

    Maven使用DependencyManagement元素来管理依赖版本号 通常会在一个组织或者项目的最顶层的父POM中看到DependencyManagement元素 使用pom xml文件中的DependencyManagement元素
  • python向列表添加元素的三种方法append()、extend() 和 insert()

    向列表增加元素的三种方法 只能处理list 1 append append 方法是将参数作为一个元素增加到列表的末尾 只接受一个参数 参数可以是任何数据类型 被追加的元素在List中保持着原结构类型 a 1 2 3 a append 4 b
  • c++ 读写标记

    r 打开只读文件 该文件必须存在 r 打开可读写的文件 该文件必须存在 rb 读写打开一个二进制文件 只允许读写数据 rt 读写打开一个文本文件 允许读和写 w 打开只写文件 若文件存在则文件长度清为0 即该文件内容会消失 若文件不存在则建
  • 车辆信息检测数据集收集汇总

    车辆信息检测数据集收集汇总 1 UA DETRAC 2 车牌数据集 3 自动驾驶数据集 4 车辆类型数据集 5 综合汽车 CompCars 数据集 6 汽车数据集 检测用 7 OpenData V11 0 车辆重识别数据集 VRID 8 S
  • 全国市场监管公共服务平台返回体相关加密

    链接 aHR0cDovL2p6c2MubW9odXJkLmdvdi5jbi9kYXRhL2NvbXBhbnk 抓包 95780ba0943730051dccb5fe3918f9fe1b6f2130681f99d5620c5497aa480f
  • Maven工程控制台输出中文乱码

    在pom xml的properties标签下加入如下元素即可解决
  • kubectl 插件推荐: kubectl-watch

    作者 imuxin 灵雀云后端工程师 kubectl watch 一个可以监听 kubernetes 资源的变更信息的 kubectl 插件 其中变更的内容通过使用 delta 1 或 difftastic 2 工具提供漂亮的终端界面展示
  • Python的函数、模块、包和库

    本文比较了Python中容易混淆的几个概念 分清它们之间的包含关系 即 函数 lt 模块 lt 包 lt 库 1 函数 function 理解为数学上的函数即可 下载安装完python后 并不是所有的函数都能直接使用的 不在同一文件时需要使
  • 快速开始 PieCloudDB Database:管控平台权限系统

    1 前言 在 快速开始 PieCloudDB 中 我们了解了如何在 PieCloudDB Database 创建账号 进行数据上传 查询和邀请用户 本文承接 快速开始 PieCloudDB 将对管控平台如权限管理 外部接入等进阶操作通过实例
  • el-dropdown-menu指令事件的使用方法

    el dropdown menu Dropdown 下拉菜单 中command指令事件的使用 官网的使用方法 点击菜单项后会触发事件 用户可以通过相应的菜单项 key 进行不同的操作 Dropdown 下拉菜单 Element Plus g
  • 5、若依服务监控

    文章目录 一 基本介绍 二 如何使用 1 添加依赖 2 在 application yml 配置暴露所有监控端点 3 监控启动类 4 启动后访问 http localhost 9100 actuator 返回正确数据表示测试通过 三 端点分
  • vue给标签动态添加元素_动态添加dom元素,并绑定vue事件

    背景 后管系统配置一个产品后 前端 vue js框架 取到这些产品信息并展示出来 产品经理要求在文本内容中添加链接 例如 本保险不承保前往处于战争状态或已被宣布为紧急状态的国家或地区 最新信息以登陆http baoxian pingan c
  • 随手记3:C#Unity中随机数的使用

    问题 在同时引用UnityEngine和System命名空间时 using UnityEngine 继承MonoBehaviour类 using System 用到了浮点数转字符串的Convert函数 如果直接Random Range fl