![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
脚本
Unity脚本学习
sixteenyy
这个作者很懒,什么都没留下…
展开
-
创建一个单例
一般来说,单例模式有多种实现方式,而选择使用哪种方式取决于你的需求和项目的架构。以下介绍了几种常见的单例实现方式:(1) 饿汉式单例:在类加载时就创建实例,保证了线程安全,但可能会造成资源浪费。} }(2) 懒汉式单例:在第一次调用获取实例的方法时才创建实例,需要考虑线程安全的问题。get(3) 使用静态初始化器:利用类的静态初始化器实现单例,可以保证线程安全,且在使用时才创建实例。} }在选择哪种单例实现方式时,可以根据你的需求和项目的具体情况来决定。原创 2024-07-19 09:15:08 · 274 阅读 · 0 评论 -
答题系统脚本
【代码】答题系统脚本。原创 2024-07-04 15:28:56 · 63 阅读 · 0 评论 -
保存和调取游戏数据、退出游戏、显示和隐藏物体、在文本中随机显示文字
【代码】保存和调取游戏数据、退出游戏、显示和隐藏物体、在文本中随机显示文字。原创 2024-06-23 19:55:24 · 112 阅读 · 0 评论 -
退出和重复
【代码】退出和重复。原创 2024-06-22 16:04:49 · 75 阅读 · 0 评论 -
保存和调取得分的简易方法
【代码】保存和调取得分的简易方法。原创 2024-06-22 16:01:46 · 109 阅读 · 0 评论 -
Mathf.Approximately
比较两个关键帧的属性是否近似相等,以确定是否需要进行动画的平滑的过渡。用于判断两个浮点数是否“近似相等”忽略物理模拟中的一些微小变化。忽视游戏中角色的轻微移动。原创 2024-06-18 15:02:04 · 214 阅读 · 0 评论 -
Time.deltaTime
(1) Time.deltaTime * speed:使物体每帧移动的距离保持一致,从而实现匀速或平滑的移动。(2) Time.deltaTime * 预设的动画速度:控制每帧动画的播放进度,从而实现稳定的播放速度。(2) 无论设备性能如何,动画都能按照预期速度进行播放,避免出现在不同设备上时快时慢的情况。(1) 在不同设备上运行时,无论帧率是多少,物体的移动速度都会保持一致。(1) 确保物体在不同设备上以相同的速度移动。(2) 确保动画在不同设备上以相同的速度播放。常用于计算与帧率无关的移动和动画效果。原创 2024-06-16 15:25:10 · 222 阅读 · 0 评论 -
foreach——循环遍历
含义:对一个容器内部的所有数据都访问一次(不会访问多次也不会漏掉)原创 2024-06-15 12:56:24 · 116 阅读 · 0 评论 -
字符串数组——传递文本的不同方法实例
(3) 初始化的方法:类型+[] + 变量名 = new string[3];(1) string:类型;(2) 数组需要初始化之后 才能使用。(4) 调用字符串的数据的实例。(5) 优化后的方法。原创 2024-06-13 20:54:40 · 243 阅读 · 0 评论 -
在两个脚本之间传输文本信息
【代码】在两个脚本之间传输文本信息。原创 2024-06-13 19:38:46 · 282 阅读 · 0 评论 -
Unity中获取数据的方法
方法或构造函数中一次性获取组件,并将其存储在一个私有变量中,然后在后续的方法中重复使用这个变量。2、不要在Update或其他高频调用的方法中频繁地使用GetComponent。如某个键是否被按下,鼠标的位置,触摸的坐标等。用于从游戏对象上获取特定的组件,以便在脚本中与该组件交互或修改其属性。常用于检测和处理用户的输入事件,如键盘按键、鼠标点击、触摸滑动等。因此,在使用返回的组件之前,最好先检查它是否为。用于处理用户输入(如键盘、鼠标、触摸等)的静态类。时,如果游戏对象上没有该类型的组件,它将返回。原创 2024-06-13 12:45:25 · 396 阅读 · 0 评论 -
激活和禁用Hierarchy面板上的物体
(1) 在HIerarchy上添加待隐藏/显示的物体,名字自取。如:endImage。(1) 新建空物体或Canvas,添加 HideGameObject.cs 组件。(3) 在HIerarchy上添加按钮,名字自取。(2) 在Inspector面板,该物体的名称前取消勾选(隐藏)(4) 在Inspector面板,该按钮的名称前取消勾选(隐藏)原创 2024-06-10 19:18:56 · 296 阅读 · 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 · 117 阅读 · 0 评论 -
获取物体的边界且在范围内任取一点
1、Create Empty,名字自取。如:testArea。4、给testArea添加boundary.cs。2、给testArea添加Collider。一、获取物体的边界且在范围内任取一点。3、编辑Collider大小。5、回到Unity赋值。二、获取物体的世界坐标。原创 2024-06-05 20:47:45 · 185 阅读 · 0 评论 -
用A、S、D、W控制物体移动的两种方法
(3) 通过代码声明变量,把变量放在Unity面板中进行修改。(2) 通过代码直接设置Time.timeScale。(2) 一格一格地移动(慢动作)——如贪吃蛇的移动。(2) 返回Unity,设置Step的值。(1) 略放慢且平滑移动。原创 2024-06-04 20:43:34 · 287 阅读 · 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 · 150 阅读 · 0 评论 -
间隔时间销毁物体
(3) 在Tray预制体上添加Tray.cs组件。(1) 将素材图片 添加到Assets。(2) 制作预制体,名字自取。原创 2024-05-25 17:59:18 · 93 阅读 · 0 评论 -
限定时间,限定范围,随机位置,随机生成陷阱内的物体
(3) 新建文件夹Prefabs,将陷阱素材制成预制体,给每个陷阱预制体添加Collider 2D组件。(2) 给TraysEmpty添加C#Script组件,名字自取。(4) 回到Unity,选中TraysEmpty,给TraysEmpties添加陷阱预制体。(3) 打开TraysEmpty.cs,声明数组,名字自取。(1) Asetts文件夹中新建文件夹,名字自取。(1) Create Empty,名字自取。(2) 将多个陷阱素材拖放到Trays文件夹中。(2) 运行游戏过程中,间隔一定时间生成陷阱。原创 2024-05-21 11:12:23 · 191 阅读 · 0 评论 -
调用另一个脚本中的程序
snake.ResetStage();原创 2024-05-20 13:51:03 · 149 阅读 · 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 · 278 阅读 · 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 · 371 阅读 · 0 评论 -
List集合
当使用Instantiate()生成新物体时并需要设定位置时,必须添加Quaternion.identity,否则Unity会报错。List bodies:创建一个名字为bodies的可变长数组,这个数组中保存有物体的Transform信息。transform.position, // 位置与脚本挂载的物体的位置相同。解释:在调用BodyPrefab时,加载的是body这个预制体的Transform信息。(2)这些集装箱有编号,依次为:0,1,2,3,4,……原创 2024-05-14 11:04:43 · 214 阅读 · 0 评论 -
for循环和利用for循环使List中的物体移动
输入for之后,连按Tab键两次,可自动出现如下格式。原创 2024-05-13 14:38:30 · 121 阅读 · 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 · 381 阅读 · 0 评论 -
把重复使用的代码打包
在需要调用方法的位置写入方法的名字+()+;注:{需要重复使用的方法}原创 2024-05-12 16:17:49 · 226 阅读 · 0 评论 -
建立数组,使数组中的物体随机生成在限定范围内的随机位置
(4) 打开Unity,为foodsEmpty物体内FoodsEmptie.cs上的Foods Empties赋值(点加号,拖放相应预制体)(2) 给foodsEmpty添加C#Script组件,名字自取。如:FoodsEmpty。(3) 将图片放入Hierarchy面板,设定后拖入Assets Prefabs文件夹。(1) Create Empty,名字自取。(2) 将图片导入Assets/Sprites文件夹。(3) 打开FoodsEmpty.cs,声明变量。(1) 准备素材图片。原创 2024-05-11 20:30:14 · 152 阅读 · 0 评论 -
脚本——移动
(1) 方法1:通常游戏用到的方法(见本文 “ 2、物体持续移动” 第33行)(2) 方法3——把变量放在Unity面板中进行修改。注 :33行:放慢移动速度——通常游戏用到的方法。原创 2024-05-11 18:02:45 · 165 阅读 · 0 评论