![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
unity学习笔记
文章平均质量分 68
Raine_Yang
这个作者很懒,什么都没留下…
展开
-
unity进阶学习笔记:photonServer测试
如果我们要创建一个新的服务器程序,在该文件夹下面创建新文件夹,并在新建文件夹下面创建文件夹bin。在解决方法资源管理器中,我们右键依赖性添加项目引用,选择Photon-OnPremise-Server-SDK_v4-0-29-11263\lib 文件夹下面的以下dll文件。程序编写完成后,我们右键项目->属性 进入输出选项,将输出的基路径设为Photon-OnPremise-Server-SDK_v4-0-29-11263\deploy\PSTest\bin,然后生成项目。如果要更大容量就需要使用付费版。原创 2023-05-19 15:49:11 · 1448 阅读 · 0 评论 -
unity进阶学习笔记:数据存储管理器
有些时候我们希望保存某一游戏物体上面组件的数据,在读档是将数据加载到游戏物体上。这里我不知道为什么Package Manager始终没法检测到Easy Save的包,我们可以选择Assets -> Import Package -> Custom Package在硬盘中导入Easy Save的unitypackage文件。Easy Save包含加密功能,这里我们使用AES加密,加密密钥为一个字符串,我们设为“test”。unity自带有一套数据存储的系统,但是其支持的数据类型较少,不是非常好用。原创 2023-05-17 11:08:07 · 281 阅读 · 0 评论 -
unity进阶学习笔记:物品与背包类
我们要首先定义物品类Item,其变量和json文件中的定义保持一致。RemoveItem:判断物品是否在背包,如存在将物品数量减去quantity,减完后如quantity小于等于零删除该背包格子。在本文中,我们要完成一个物品类用于访问Json格式储存的游戏物品,以及一个背包类用作物品集合,作为游戏内的物品背包。GetItem:遍历物品列表,返回和参数itemID的ID一样的物品,如不存在返回null。AddItem:判断物品是否存在背包,如果存在直接增加物品数量,不存在则添加新物品。原创 2023-05-16 17:55:34 · 711 阅读 · 0 评论 -
unity进阶学习笔记:json和xml
要解析json文件,我们使用方法JsonUtility.FromJson()得到json文件最外层的数据类型,然后即可对该数据进行层层拆包得到里面的数据。要为一个节点添加属性,首先创建XmlAttribute对象,再把该对象加入节点的Attribute中,方法和添加子节点类似。在[ ]中@id=2代表访问所有有id属性的节点中,id值为2的节点。如果直接为@id代表访问所有有id属性的节点。在节点后面[ ]中可以输入要访问第几个节点,注意第一个节点编号为1不是0.last()为最后一个节点的编号。原创 2023-05-16 14:41:55 · 933 阅读 · 0 评论 -
unity进阶学习笔记:声音管理器
我们的声音管理器设置三个播放器,envPlayer,sePlayer,Player,分别用于管理游戏环境音乐,音效,和背景音乐。如果直接得到AudioClip,我们在设置好音量和clip后判断一下播放器是否在播放其他音乐,如果是的话先关闭正在播放的音乐,然后开始播放新的clip。在创建声音管理器之前,我们先创建一个空的类Manager用于保存所有的管理器单例,这样之后要用到管理器时,直接调用Manager类即可。如果传入的是音乐名,就从Resources加载对于音乐,然后调用第二个PlayMusic方法。原创 2023-05-13 15:14:54 · 635 阅读 · 0 评论 -
unity进阶学习笔记:UI框架
在UI系统中,我们放弃之前消息系统中使用的广播框架,因为该方案需要专门为每一个UI组件编写发送和接受消息的方法,过于复杂。我们希望通过UIController和UI Manager可以让每一个UI组件访问到任何一个另外的UI组件。在下面程序中我们获取到该游戏物体的按钮组件control,并在control上挂载对action的监听。UI框架主要分3层:UIManager用于管理所有UI组件,UIController用于管理某一个UI面板,如角色信息面板,商店面板等。一般来说,一个游戏内具有大量的UI组件。原创 2023-05-12 13:21:36 · 1233 阅读 · 0 评论 -
unity进阶学习笔记:有限状态机
每一个状态里都有对应的动画。在idle()方法中如果发现玩家按下方向键将状态切换为State.run,在按下空格时将状态切换为State.wave。状态基类保存了状态的ID(即在State枚举中的值),Mono包括了使用该状态的游戏物体,Manager为该状态的管理器(在后面代码实现)在状态基类里定义了OnEnter (在进入该状态时执行的方法) OnUpdate (在该状态中每一帧调用方法)。在run()方法里我们实现了角色移动,如果方向为(0,0,0)时说明玩家松开方向键,将状态切换为idle。原创 2023-05-08 11:19:12 · 754 阅读 · 0 评论 -
unity进阶学习笔记:消息框架
1 使用消息框架的目的对于小型游戏,可能不需要任何框架,而是让各个游戏脚本直接相互通信。如要实现玩家受到攻击血量减少,通过玩家控制类向血条脚本发送消息减少血量。但是这样直接通信会导致各脚本通信关系记为复杂,并且每一个脚本都和多个脚本有联系,导致维护和更新十分困难我们利用上节课讲的管理类,可以将一类脚本由一个管理类控制,如将玩家的功能放在玩家管理类下,将血条,背包等UI组件放在UI管理类下。这样要减少玩家血量,可以让玩家控制类向UI管理类发消息,然后UI管理类来改变血条。该方案对大部分小型游戏适用,但对于大型原创 2023-05-06 15:56:48 · 2008 阅读 · 7 评论 -
unity进阶学习笔记:单例模式
在该实例中,我们创建一个单例对象instance(一般单例对象常用名)用于给外界访问。消息框架指游戏物体之的通信框架,虽然unity引擎自带一套消息框架,但该框架只能用于父子物体之间通信,无法实现大部分非父子关系的物体间通信。单例只一个类只生成一个对象。一般来说,游戏内容的管理类,如消息管理类,网络管理类都只应有一个对象,这时就要使用单例实现。状态机用于管理每一个物体不同状态,如对于一个人物可能有移动,攻击,死亡等多个状态。游戏中每将一个脚本挂载到一个游戏物体上作为组件时,就会生成一个该脚本类的对象。原创 2023-05-05 09:18:28 · 935 阅读 · 1 评论