![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
小方法
sixteenyy
这个作者很懒,什么都没留下…
展开
-
时间系统的改进
在UpdateGameTime方法中,使用DateTime.UtcNow来获取当前的UTC时间,并计算出初始时间至当前时间经过的时间间隔。1、创建GameTimestamp类的构造函数,将年份参数设为DateTime类型的参数,并将其转换为对应的年、季节、天、小时和分钟。在游戏开始时调用Initialize方法,并在每一帧更新时调用UpdateGameTime方法以确保游戏时间与初始时间保持同步。在Initialize方法中,使用DateTime.UtcNow来获取当前的UTC时间,并将其设置为初始时间。原创 2024-08-05 20:00:03 · 152 阅读 · 0 评论 -
创建和管理大量的数据对象:ScriptableObject
在Unity的Project视图中,通过右键菜单选择“Create” -> “Items” -> “Item”来创建。如:多个场景中重用的数据对象以存储和管理游戏中的数据:物品、角色属性、配置数据等。保存后可在Unity中Create菜单中出现Item。的子类,可定义和编辑属性、字段和方法,及自定义的序列化数据。创建一个名为ItemData的类,该类继承自。这些字段可以被用于定义物品的属性。(游戏模型)三个字段。原创 2024-07-21 12:56:04 · 413 阅读 · 0 评论 -
创建一个单例
一般来说,单例模式有多种实现方式,而选择使用哪种方式取决于你的需求和项目的架构。以下介绍了几种常见的单例实现方式:(1) 饿汉式单例:在类加载时就创建实例,保证了线程安全,但可能会造成资源浪费。} }(2) 懒汉式单例:在第一次调用获取实例的方法时才创建实例,需要考虑线程安全的问题。get(3) 使用静态初始化器:利用类的静态初始化器实现单例,可以保证线程安全,且在使用时才创建实例。} }在选择哪种单例实现方式时,可以根据你的需求和项目的具体情况来决定。原创 2024-07-19 09:15:08 · 313 阅读 · 0 评论 -
农场资源的获取
1、找到类别,点击Browse Texture。3、搜索Brown Mud Dry。4、搜索Brown Mud。原创 2024-07-14 14:02:25 · 159 阅读 · 0 评论 -
下载动画人物
7、点击UPLOAD CHARACTER,看到男孩步行,选择In Place,点击下载,不需要皮肤。4、点击弹出的人物,弹出对话框选择USE THIS CHARACTER。6、点击Animations,搜索walk。2、点击Characters。原创 2024-07-11 17:15:36 · 130 阅读 · 0 评论 -
配置光源——笔记
(二)Spot 聚光灯:昏暗(凌晨或傍晚),有一个光斑。2、Mode:渲染类型选择Realtima(实时渲染)(1) Resolution:分辨率高低(高效果好)(一)Directional Light(定向光)2、fog效果——注意颜色与天空保持一致。(四)Area——bake后才产生效果。1、Shadow Type :阴影类型。1、只改变方向变化,不记录位置变化。1、天空盒资源——搜索skybox。(三)Point(泛光灯)(2) Bias:偏移效果。原创 2024-07-11 14:57:25 · 237 阅读 · 0 评论 -
创建地形——笔记
(8) 树:选中Terrain。选中Tree,点击Add Tree,在弹出界面选择准备好的预制体,点击add。依次点击Nomal Map和Mask Map右侧的Slect,增加法线贴图(紫)和遮罩(蓝)贴图。(1) 选中地形、设置整体地形的高度。(5) 编辑沙土层——选中Inspector中的新建沙土层,出现编辑面板。(7) 调节光滑度和笔刷后,开始在Scene中绘制。(3) 选中Terrain,绘制贴图。(6) 同样的方法创建草地。(9) 更改密度、高度等。(4) 新建一个沙土层。原创 2024-07-11 09:22:43 · 161 阅读 · 0 评论 -
答题系统脚本
【代码】答题系统脚本。原创 2024-07-04 15:28:56 · 69 阅读 · 0 评论 -
保存和调取游戏数据、退出游戏、显示和隐藏物体、在文本中随机显示文字
【代码】保存和调取游戏数据、退出游戏、显示和隐藏物体、在文本中随机显示文字。原创 2024-06-23 19:55:24 · 116 阅读 · 0 评论 -
退出和重复
【代码】退出和重复。原创 2024-06-22 16:04:49 · 82 阅读 · 0 评论 -
保存和调取得分的简易方法
【代码】保存和调取得分的简易方法。原创 2024-06-22 16:01:46 · 114 阅读 · 0 评论 -
设置巡逻路径的方法
物体被标记为Navigation Static后,Unity会在Bake过程中将这些物体的几何信息纳入导航网格中,从而使得游戏中的角色或其他可移动对象能够知道哪些区域是可行走的,哪些是不可行走的。(4) 可以根据需要,取消勾选Level的子物体(如天花板、地板下面一层的Plane等)上的Static,从而精准控制需要巡逻的位置。(2) 选中Hierarchy面板上的Level,在它的Inspector面板右侧,勾选Static后,选择yes。新的后面学会了再说)的目标位置设置为上一步获取到的路径点位置。原创 2024-06-20 11:56:51 · 698 阅读 · 0 评论 -
游戏中插入音效
(2) 选中bgAudio,在AudioClip中选择导入的背景音乐。(1) Create Empty,名字自取,如:bgAudio。(2) 选中 bgAudio,勾选开始运行就播放、循环播放。调节音量(volume)(5) 在按钮或其他事件中调用OnClickbgAudioPlay()方法。(1) 将背景音乐 bgAudio 拖放到Hierarchy面板。(3) 给bgAudio添加GameAudio.cs 组件。(2) 取消勾选Play On Awake。(2) 取消勾选Play On Awake。原创 2024-06-17 11:00:31 · 383 阅读 · 0 评论 -
Time.deltaTime
(1) Time.deltaTime * speed:使物体每帧移动的距离保持一致,从而实现匀速或平滑的移动。(2) Time.deltaTime * 预设的动画速度:控制每帧动画的播放进度,从而实现稳定的播放速度。(2) 无论设备性能如何,动画都能按照预期速度进行播放,避免出现在不同设备上时快时慢的情况。(1) 在不同设备上运行时,无论帧率是多少,物体的移动速度都会保持一致。(1) 确保物体在不同设备上以相同的速度移动。(2) 确保动画在不同设备上以相同的速度播放。常用于计算与帧率无关的移动和动画效果。原创 2024-06-16 15:25:10 · 243 阅读 · 0 评论 -
字符串数组——传递文本的不同方法实例
(3) 初始化的方法:类型+[] + 变量名 = new string[3];(1) string:类型;(2) 数组需要初始化之后 才能使用。(4) 调用字符串的数据的实例。(5) 优化后的方法。原创 2024-06-13 20:54:40 · 253 阅读 · 0 评论 -
在两个脚本之间传输文本信息
【代码】在两个脚本之间传输文本信息。原创 2024-06-13 19:38:46 · 287 阅读 · 0 评论 -
实例化游戏物体的实例(生成游戏物体)
(3) 选中foodArea,按住Alt,选择放大到和Canvas大小相同,添加一个名为“FoodArea”的标签。(1) 新建Test.cs,挂载到Hierarchy界面上的物体上,如:Canvas上。(2) 回到Unity,选中Button,添加Event Trigger组件,并赋值。(3) 将TestBtn中的文字和按钮拆分,并设置为nodesPrefab的子物体。这条射线起点是摄像机的位置,它连到被点击的屏幕的位置并发射到场景中的无限远。(2) Create Empty,名字自取。原创 2024-06-13 15:35:46 · 1043 阅读 · 0 评论 -
激活和禁用Hierarchy面板上的物体
(1) 在HIerarchy上添加待隐藏/显示的物体,名字自取。如:endImage。(1) 新建空物体或Canvas,添加 HideGameObject.cs 组件。(3) 在HIerarchy上添加按钮,名字自取。(2) 在Inspector面板,该物体的名称前取消勾选(隐藏)(4) 在Inspector面板,该按钮的名称前取消勾选(隐藏)原创 2024-06-10 19:18:56 · 308 阅读 · 0 评论 -
逻辑取反操作——游戏暂停
1、作用切换一个布尔值(bool)的状态简化代码并减少冗余2、解释bool isPlaying = true; // 假设游戏当前正在进行中// 玩家点击了暂停按钮isPlaying = !isPlaying; // 通过逻辑取反操作切换isPlaying的状态// 现在isPlaying的值是false,表示游戏已暂停3、实例public void Pause(){ isPause = !isPause;//改变当前isPause的值(与当前的值相反)原创 2024-06-08 11:04:27 · 124 阅读 · 0 评论 -
将数据类型float强制转换成string
(1) Time.timeScale = speed,speed必须是属于float的数据类型,因此,在写这个代码之前 应该先声明一个名字为speed,类型为float的变量,如下图。b 必须是属于 string 的数据类型,因此在写这个代码之前,声明了一个名字为b,类型为string的变量。B.数据类型为string,名字为b的变量,必须书写在双引号内部,这个文字内容直接被显示出来,不能用于数学计算。C.声明一个名字为testText的文本类变量。原创 2024-05-15 10:55:52 · 410 阅读 · 0 评论 -
for循环和利用for循环使List中的物体移动
输入for之后,连按Tab键两次,可自动出现如下格式。原创 2024-05-13 14:38:30 · 131 阅读 · 0 评论 -
使物体出现在特定位置并移动
(1) 找到冲突碰撞体:在OnTriggerEnter2D事件中添加显示碰撞物体的代码。C.回到被接触物体的Inspector面板找到Tag,选择新添加的标签。A. 声明一个名字为bodies的变量,用来承载这些陆续出现的物体。A.找到苹果(正常被接触物体)的Tag栏,选择Add Tags。Transform:只取获取该变量的Transform信息。B.在弹出窗口点击加号,在New Tag Name中命名。B. 使游戏开始时,蛇的头部就已经出现。C. 发生接触事件时,蛇的身体陆续出现。原创 2024-05-12 19:14:51 · 389 阅读 · 0 评论 -
把重复使用的代码打包
在需要调用方法的位置写入方法的名字+()+;注:{需要重复使用的方法}原创 2024-05-12 16:17:49 · 233 阅读 · 0 评论 -
通过按钮由一个场景跳转到另一个场景
6、回到Unity,选择Button-On Click,添加附加脚本的物体,选择ScenesLoader.LoadScene2。5、创建SceneLoader.cs,并把它附加到一个物体上(任何物体或者Canvas都可以)(2) 点击 File-Build Settings-Add Open Scenes。1、创建两个场景,名字自取。3、把两个场景都添加到Build Settings中。4、在Start场景添加按钮:UI-Button…(1) 分别打开两个场景。原创 2024-06-02 18:41:51 · 176 阅读 · 0 评论 -
锚点、改变锚点、轴心点的位置
(1) Canvas是Image的父物体,1、作用:用于描述子物体在父物体中的位置。原创 2024-05-30 15:07:58 · 397 阅读 · 0 评论 -
制作游戏的开始界面
(2) 在按钮上添加文字,选择按钮下的文本在右侧Text Input添加(找不见的话下拉滚动条)(1) UI-Text TextMeshPro,名字自取,如:titleText。(3) 为开始界面的所有物体创建一个父空物体,名字自取,如StartMenu。点击Stretch,在弹出对话框后按住Alt键,选择最下,最后一个图标。(1) UI-Image,名字自取,如:bgImage。(1) 选中按钮,在On Click()面板上点击加号。(3) 添加需要的文本框,装载游戏名称、玩法等信息。原创 2024-05-16 10:54:15 · 161 阅读 · 0 评论 -
用A、S、D、W控制物体移动的两种方法
(3) 通过代码声明变量,把变量放在Unity面板中进行修改。(2) 通过代码直接设置Time.timeScale。(2) 一格一格地移动(慢动作)——如贪吃蛇的移动。(2) 返回Unity,设置Step的值。(1) 略放慢且平滑移动。原创 2024-06-04 20:43:34 · 315 阅读 · 0 评论 -
调用另一个脚本中的程序
snake.ResetStage();原创 2024-05-20 13:51:03 · 158 阅读 · 0 评论 -
间隔时间销毁物体
(3) 在Tray预制体上添加Tray.cs组件。(1) 将素材图片 添加到Assets。(2) 制作预制体,名字自取。原创 2024-05-25 17:59:18 · 97 阅读 · 0 评论 -
使用脚本记录得分情况
(2) 声明一个名字自取的变量(如:scoreText)以承载Score的TextMeshPro-Text组件上的的数据。在Hierarchy面板选择UI,在Inspector面板的GameUI(Script)选择Score。UI-Text-TextMeshPro,名字自取(如:Score)(1) Create Empty,名字自取(如:UI)文本的位置、文字的字号、颜色、文字在文本内的位置等。(2) 添加脚本,名字自取(如:GameUI)(3) 注意关联空物体与新建脚本。原创 2024-05-15 13:36:39 · 286 阅读 · 0 评论 -
脚本——移动
(1) 方法1:通常游戏用到的方法(见本文 “ 2、物体持续移动” 第33行)(2) 方法3——把变量放在Unity面板中进行修改。注 :33行:放慢移动速度——通常游戏用到的方法。原创 2024-05-11 18:02:45 · 176 阅读 · 0 评论 -
自动移动和自动旋转
1.2 添加组件时,系统自动添加了刚体(Rigidbody 2D),要考虑重力的影响(一般设置 Gravity 为0),适当调整阻力。2.2 添加组件时,系统自动添加了 Rigidbody 2D,Gravity 同样设置为 0,除适当调整阻力外,还可以调整速度。1.1 常用对象:自行式物体,游戏对象自动向特定方向移动;2.1 常用对象:星球等自转类物体。原创 2024-05-10 19:30:08 · 111 阅读 · 0 评论 -
获取物体的边界且在范围内任取一点
1、Create Empty,名字自取。如:testArea。4、给testArea添加boundary.cs。2、给testArea添加Collider。一、获取物体的边界且在范围内任取一点。3、编辑Collider大小。5、回到Unity赋值。二、获取物体的世界坐标。原创 2024-06-05 20:47:45 · 195 阅读 · 0 评论