
unity基础
文章平均质量分 68
unity基础
euphorias
这个作者很懒,什么都没留下…
展开
-
Input.GetMouseButtonUp(0) 执行两次问题
通过Unity Input.GetMouseButtonDown,检测鼠标按下,一次单击出现两次按下事件。原创 2022-11-10 16:41:10 · 1326 阅读 · 0 评论 -
Unity UI事件渗透
unity UI 点击渗透,适合各类型引导功能原创 2022-09-26 20:51:45 · 2101 阅读 · 0 评论 -
Unity-URP 实现遮挡高亮
文章目录实现原理模板测试实现Env Front渲染层Shadow 渲染层Player渲染层深度测试实现总结:实现原理URP可以根据Layer定制渲染顺序,所以做三遍渲染,第一遍渲染障碍物层,第二遍渲染高亮层,第三遍正常渲染有深度测试实现法,和模板测试实现法,我也是参考了深度测试的实现方法,探索出的模板测试实现法深度测试实现在某些情况下 会影响深度渲染,导致物体渲染不正确,所以才用模板测试,不影响深度,渲染结果更加准确模板测试实现最终效果模板测试实现找到Urp渲染管线资源,关闭特殊渲染顺序需要原创 2022-02-23 14:47:14 · 4385 阅读 · 0 评论 -
Slate轨道工具使用(二)—Odin支持
Slate轨道型工具支持Odin原创 2022-01-26 21:33:43 · 784 阅读 · 0 评论 -
Xlua从开发到热更全流程Demo
1.Demo框架解读1.首先MonoMain作为程序主入口,在执行完版本检查之前所有的脚本都不进行加载,执行完版本检查后,将需要的资源以及热更的逻辑加载。2.不能滥用热更新,所有的热更lua都用该用 main来控制,举例运行时不要直接调用C#的UIBag,而是通过MyBagLua 来打开背包,同时MyBagLua也是提供给lua的可以进行热更的接口,只有C#主动提供出来的接口才允许Lua热更。3.在Lua测,则是main函数进行控制,加载哪些文件热更,哪些文件不进行热更。4.重点:最好不要C# 与原创 2021-01-31 19:21:15 · 1297 阅读 · 0 评论 -
创造一个属于自己的Linux服务器(贴近云服务器)
完整的本地服务器配置ssh连接+FTP文件传输文章目录1.虚拟机安装ubantu2.置ssh连接(使用vscode 进行ssh控制,或者Xshell6)3.nano(关键)4.使用ssh秘钥登录服务器root用户(可选)5.FTP文件传输6.给Ubuntu服务器安装图形化界面(可选)创建一个本地linux服务器(为unity的网络游戏部署做准备,与人斗其乐无穷),本来是打算用阿里云服务器,后来考虑到花钱问题,还是先用虚拟机本地服务器学习用,吃透了本地服务器,阿里云也就是多一步申请服务器,其余步骤都是一样原创 2021-01-25 00:13:57 · 525 阅读 · 0 评论 -
Xlua热更新使用方法 (三) Demo框架以及整体规划
文章目录1.首先需要美术资产2.下载Assetbundle和Xlua,assetbundle进行打包3.打包好的assetbundle需要做版本文件,进行本地和服务器对比4.部署5.客户端检测版本文件,对比,下载6.程序运行框架利用Xlua和assetbundle做一个版本检查+资源和lua的热更新Demo,这一篇是思路整理以及简单测试首先是确定整体流程1.首先需要美术资产做一个完整的UI热更新流程,所以商城找一个UI资源2.下载Assetbundle和Xlua,assetbundle进行打包原创 2021-01-24 23:33:32 · 441 阅读 · 1 评论 -
Xlua热更新使用方法 (二)
这次原创 2021-01-20 20:32:32 · 906 阅读 · 8 评论 -
C#初中级实战—3DFlipBird(四)缓存池与性能分析(UPR+夜神模拟器)
文章目录缓存池概念:制作方法:效果:性能测试:URP添加测试结果分析:标准手机打包(中质量)缓存池无缓存池最高质量打包缓存池无缓存池缓存池概念:缓存池,关键在于缓存二字,如何缓存呢,即保存到某个地方,每次需要创造某个物体时先从缓存池里看看有没有,有就从缓存池里拿出来用,不进行创造。用完了就放到缓存池里面、制作方法:我们每次创建障碍物应该先从缓存池里面找有没有障碍物,有的话就直接从缓存池里面拿出来,又因为我们有很多不同的障碍物,所以我们使用字典,查找对应缓存池是否存在,没有就创建一个,有就放进去。缓原创 2020-10-23 14:24:17 · 368 阅读 · 1 评论 -
C#初中级实战—3DFlipBird(三)
文章目录1.升级渲染管线2.Bird增加重力感应:3.增加金币和UI面板4.天空增加障碍物云朵先放效果1.升级渲染管线从Package Manager中安装URP(原名:Lightweight RP)安装好之后,创建URP渲染管线:创建完成,在项目设置中,选择渲染管线2.Bird增加重力感应:注意事项:如果物体发紫,那么就需要为物体指定URP的shader2.Bird增加重力感应:使用Input.acceleration获取手机的重力感应方向:其中transform为需要根据手原创 2020-10-08 13:35:19 · 239 阅读 · 0 评论 -
使用Json实现背包系统的数据存储(二)
文章目录一、美术准备(做个斧头)二、Json数据与GUI界面连接起来下一步是将数据与背包的界面联系起来完整代码参考一、美术准备(做个斧头)在blender里面做个斧头作为需要捡起来的物体。这里放进去发现贴图颜色略有变化,我这里使用的是URP,不清楚原因,还请大家指教,有解决办法万分感谢。二、Json数据与GUI界面连接起来我们需要每次吃到斧头后,将斧头的数据放入到背包中(背包类的List列表)所以我们需要一个ItemOnWorld,即世界物体与背包数据的交互public class It原创 2020-10-02 13:12:26 · 764 阅读 · 0 评论 -
使用Json实现背包系统的数据存储(一)
一.搭建背包界面1.创建一个空项目,从商店下砸资源,找个环境,找个角色人物自带一个移动脚本,直接将prefab拖进去即可现在小人已经可以移动了我们还需要一个背包的UI面板。开始搭建背包UI,背包是一个panel,加一个Text标题,里面加一个带有Grid Layou Group的Panel(防止格子用),下方加描述Text。加入一个打开关闭的Key添加Item类,添加需要序列化的JsonData添加一个Json数据管理(进行读写)进行读写方法测试写测试完成,在be原创 2020-09-28 21:00:15 · 667 阅读 · 0 评论 -
Unity数据持久化-Json
文章目录JSON概念:JSON结构:JSON优势:与JavaScript的关系:Unity方法:使用JsonUtilityJson存储Json加载:注意事项:完整代码参考:JSON概念:JSON(JavaScript Object Notation)一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。可在不同平台之间进行数据交换。JSON采用兼容性很高的、完全独立于语言文本格式,同时也具备类似于C语言的习惯体系的行为。这些特性使JSON成为理想的数据交换语言。JSON结构:JSON语法是j原创 2020-09-07 13:23:10 · 521 阅读 · 0 评论 -
Unity数据持久化-XML
XML(可扩展标记语言)被设计用来“结构化”传输和存储数据,携带数据和交换数据XML文档即文本文件,按照XML语法规则书写,本质也是String文档必须包含根元素。该元素是所有其他元素的父元素! XML文档中的元素形成了一颗文档树。这棵树丛根部开始,并扩展 (所有元素都可拥有子元素)XML非常适合 Web 传输,提供了统一的方法来描述和交换独立于应用程序或供应商的结构化数据容易与其他系统进行远程交互,数据共享比较方便xmlDocument类位于System.Xml中 ,专门解析XML文档xmlD原创 2020-09-04 13:17:22 · 370 阅读 · 0 评论 -
Unity数据持久化-序列化反序列化
序列化:把对象转化为可传输的字节序列过程称为序列化。通俗说就是将一个对象的状态(各个属性量)保存起来,然后在适当的时候再获得。反序列化:把字节序列还原为对象的过程称为反序列化。序列化目的:以某种存储形式使自定义对象持久化,将对象从一个地方传递到另一个地方,为了对象可以跨平台存储,和进行网络传输(凡是需要进行“跨平台存储”和”网络传输”的数据,都需要进行序列化)常见的序列化方式有:JDK(不支持跨语言)、JSON、XML、Hessian、Kryo(不支持跨语言)、Thrift、Protostuff、F原创 2020-09-04 11:28:36 · 556 阅读 · 0 评论 -
Unity数据持久化-PlayerPrefs
概念:PlayerPrefs是Unity提供了一个用于【数据本地持久化】保存与读取的【类】原理:以key-value【键值对】的形式将数据保存在本地,然后在代码中可以写入、读取、更新数据缺点:对于大量数据的保存读取会十分乏力优势:储存一些简单的数据,游戏选项设置,用户登陆信息等保存方法:PlayerPrefs.SetInt(“key”, value);//SetFloat和SetString也可以读取方法:PlayerPrefs.GetInt(“key”)//GetFloat和GetString也原创 2020-09-04 11:14:27 · 656 阅读 · 0 评论 -
C#初级教程-函数
函数的定义和使用定义函数static void Write(){Console.WriteLine(“Text output from function .”);}函数的使用static void Main(){Write();}控制台应用程序函数的定义形式如下:static (){…return ;}参数数组定义一个函数,用来取得数字的和,但是数字的个数不确定。...原创 2020-02-24 15:28:33 · 671 阅读 · 0 评论 -
C#初级教程-C#变量类型
类型转换隐式转换编译器自动识别 , 不需要我们写更多的代码显示转换short j = (short)i需要我们告诉编译器,什么类型转换成什么类型使用Convert命令进行显示转换强制类型转换:private string a="";private float b;private void Start(){ a = b.ToString();//转字符串 b ...原创 2020-02-24 15:27:48 · 193 阅读 · 0 评论 -
C#初级教程-C#常用运算符
布尔运算布尔运算符-处理布尔值条件布尔运算符if else语法if()<code executed if is true>else<code executed if is false>如果if和else要执行的代码有多行,可以加上{}组成一个块if(<test>){ <code executed if <test>...原创 2020-02-24 15:26:28 · 243 阅读 · 0 评论 -
使用VScode以及github进行版本管理,可视化,无需使用git命令
使用总结:下载VScode下载git(三件套),下载git客户端(github desktop)https://git-scm.com/https://code.visualstudio.com/登录客户端创建一个远程仓库/上传一个仓库(等于新建一个仓库)。从github克隆一个仓库,用VScode打开,配置VScode自带的git,登录,保存令牌,设置git.exe路径(三件套下载的...原创 2019-08-05 14:02:57 · 8797 阅读 · 0 评论 -
unity椭圆映射,解决斜角移动,1.414(根号2)问题
问题:在我们写好了移动代码之后,按下前后左右都没问题,但是当同是按下前和右进行斜角的移动时,会发现人物的移动速度变快了。这是因为我们在写移动代码的时候,将移动向量的长度作为移动的速度,而同时按下两个键,向量的方向没问题,但是向量的长度会因为三角形法则成为1.414倍没及...原创 2019-07-10 14:07:27 · 2656 阅读 · 0 评论 -
制作一个记账器UI(unity制作二)
我们建立两个button,放在下方,一个作为运算,一个作为读取我们在属性面板将字体改大点。然后放在合适的位置我们的记账对象可能不止一个,我们建立三个面板,利用toggle来开启不同的面板我们建立三个toggle放在合适的位置我们把之前的面板复制三份,将每一个面板给与toggle,在函数里面设施开启然后我们将3个toggle打成一个组,这样确保每次只开启一个面板。我们随便...原创 2019-05-14 13:22:24 · 349 阅读 · 0 评论 -
制作一个记账器UI(unity制作一)
利用UI元素来制作一个简单的记账器,先来看下最终效果。我们先建立一个Canvas,然后调整一下game窗口的大小,因为决定最终放到手机上使用,所以挑一个合适的屏幕比例,这里选择9:16.我们选择一张图片作为背景,点击stretch 然后ALT右下角将UI元素铺满屏幕(画布),这里记得画布下面建立一个图像。接下来我们选择一个输入框并给予相应的图片。我们开始摆置数据输入的地方,点击...原创 2019-05-14 13:05:02 · 1006 阅读 · 0 评论 -
UGUI锚点自适应问题
最近使用UGUI发现一种情况,那就是需要让锚点和ui元素的四个角对齐,但是很不幸,我从unity找了半天,也没找到这个功能,无奈之下,自己写了个插件。想法是得到UI元素四个角的位置,然后更改锚点的位置与UI元素的位置对齐,因为锚点实际上只用min与max两个值就可以确定,所以其实我们也只需要得到UI元素的左下角和右上角的值。我们得到UI元素坐标的方法有两个,一个是通过GetWorldCorn...原创 2019-05-12 23:11:44 · 1193 阅读 · 2 评论