- 博客(106)
- 资源 (4)
- 收藏
- 关注

原创 Unity使用SteamVR2.0实现基本功能(瞬移,抓取物品,射线点击,UI交互等)
SteamVR2.0 学习基本功能使用,清楚各个组件的功能和参数,了解SteamVR的代码逻辑
2022-05-17 13:50:42
17532
24
原创 Unity 使用 Protobuf(Pb2)二进制数据全流程工具详解
在Unity游戏开发中,高效、快速、安全地读取配置数据是一项重要需求。本文介绍一种完整的解决方案——使用Protobuf二进制格式(Pb2)存储和读取游戏数据,并详细分享实现全流程的Unity工具。本文提供了一整套基于Unity引擎的Protobuf(Pb2)数据管理流程,从Excel设计、数据转换、代码生成到数据加载,自动化程度高且扩展性强。通过本文分享的工具与方法,开发者可以高效地实现Unity项目的数据管理。
2025-03-24 19:26:43
666
原创 Unity如何使用HybridCLR完成代码热更
传统 Unity 使用 IL2CPP 时,所有代码都会被转换成 C++,不支持反射加载外部 DLL。而 HybridCLR 让我们在 IL2CPP 下也能使用热更新,减少因 Unity 版本升级导致的兼容性问题。HybridCLR 是一个。HybridCLR 依赖。HybridCLR 依赖。
2025-02-17 14:21:55
976
原创 Unity URP ShaderGraph 基本设置
Unity 从版本开始正式支持通用渲染管线(URP,Universal Render Pipeline)。URP 是轻量渲染管线(LWRP,Lightweight Render Pipeline)的升级和重命名版本,它提供了更高的性能和可扩展性,并且支持更多的功能,如更高级的光照、阴影和后处理效果。(URP,Universal Render Pipeline)和它们在性能、图形质量和使用场景上各有侧重。
2024-10-22 13:53:04
1539
原创 Unity热更新资源和代码-(学前必读)
在对热更新有初步了解之后,还需要一整套的热更新流程来帮助我们开发,本系列文章将会对热更新的全部流程进行学习讲解。
2023-11-20 16:59:50
288
原创 Fixed Function Shader
Shader语法不区分大小写基础的数据类型 一个属性的组成 _Color:属性名字(在之后的代码块中,调用到这个属性时,使用的名字) "Main Color":在Unity中,我们在面板中看到的名字 Color:数据类型 (1,1,1,1):数据的默认值SubShader shader代码块 一个Shader中可以存在一个或多个"SubShader{}",但是显卡每次渲染处理的时候只能选择一个SubShaders执行执行顺序是最先处理最上方的"SubShader{}
2023-05-18 10:43:51
536
原创 ECS开发(一、)ECS是什么?
什么是ECS?ECS是一种软件架构模式,由三个元素组成:实体(Entity),组件(Component)和系统(System)E: Entity一个不代表任何意义的实体(可以理解为Unity里的一个空的GameObject)挂载 ConvertToEntity 组件C: Component一个只包含数据的组件(可以理解为Unity的一个自定义组件,里面只有数据,没有任何方法)继承 IComponentData 接口S: System一个用来处理数据的系统(可以理解为Uni
2022-05-31 16:34:55
5022
原创 Unity DOTS学习导航
DOTS学习的相关内容,会在该系列文章中更新文章目录开发环境搭建 ECS开发 ECS World ECS Entity基本操作 ECS Component基本操作 ECS ShareComponent基本操作前言DOTS技术学习使用,可以大幅度提升我们在Unity项目开发时的项目性能,作为项目优化最重要的一环,DOTS为我们节省了大量的计算机性能,却保留了完整的项目质量.为什么要使用Dots?1.0 传统方式问题 数据冗余 所有脚本都继承Mono...
2022-05-31 15:29:43
1051
1
原创 SteamVR2.0 进阶交互效果
3D实体按钮效果HoverButton预制件资源位置关键组件需要HoverButton、Collider、Interactable三个基础组件参数介绍movingPart:交互对象(实体按钮) localMoveDistance:按钮交互的移动方向 engageAtPercent:接触百分比 disengageAtPercent:脱离百分比 onButtonDown:按下事件 onButtonUp:抬起事件 onButtonIsPressed:按压事件 en
2022-05-19 14:15:06
1019
原创 Unity 发布WebGL自适应窗口内全屏(适配手机浏览器)
<body> <div class="webgl-content"> <div id="unityContainer" style="width: 100vw; height: 100vh; margin: auto"></div> </div> <script> window.onresize = adjuest; function adjuest(){ var divCon = docu.
2022-05-11 15:13:11
2742
原创 Easy AR Unity开发
1. 下载插件EasyAR官网EasyARSceneUnityPlugin官方文档下载地址2.导入插件解压下载到的插件包,放到不会被你忘记或删掉的地址新版本的插件导入注意:在导入后,tgz文件不能被删除或移动到另一个位置,因此通常需要在导入前将这个文件放在合适的地方。如果你希望与他人共享工程,可以将文件放在工程目录内,如果有使用版本管理,也需要加入。3.导入案例导入之后,按下面这个方法,找到easyAR的插件,按照需要,找到你需要使用的案例,点击Impor...
2022-04-07 14:40:14
2572
原创 UGUI 不规则UI点击
使用碰撞器继承Image,重新实现IsRaycastLocationValid需要使用碰撞器来实现,需要手动去调整碰撞器的范围using UnityEngine;using UnityEngine.UI;[RequireComponent(typeof(PolygonCollider2D))]public class ImagePolygon : Image{ PolygonCollider2D poly2d; void Awake() {
2022-02-16 15:43:08
591
原创 Unity编辑器扩展 自定义脚本属性面板--基础篇
开发中,如果使用插件会发现插件的组件,在属性面板上的设计非常方便,看着很高大上,他们是怎么做到的呢基础在Editor文件夹下,创建我们的属性面板编辑脚本 using UnityEditor的命名空间 继承Editor测试脚本using UnityEngine;public class ComponentInspector:MonoBehaviour { public bool PropertyBool; public TestEnum PropertyEn
2022-02-11 14:10:43
3555
原创 C# Linq 学会使用,学会自己编写Linq
Linq我暂时理解为,一种内置的非常方便的数据查询的工具使用我们先学习它的使用//数据类 public class DataTest { /// <summary> /// 编号 /// </summary> public int id; /// <summary> /// 名字 /// </summary>
2021-12-07 15:41:59
3247
原创 C# 委托,匿名函数,Lambda表达式
委托我们先在C#中写一个委托,关键字delegate delegate void TestDelegate();委托就是方法的类型我们现在实现委托 class Program { static void Main(string[] args) { //实例化这个委托,参数就填和委托方法返回值和参数类型一样的方法名字 TestDelegate Test = new TestDelega
2021-12-06 14:51:14
559
原创 C# 类和结构体
在C#中,类和结构体非常的相似,在使用中,也不太明白它们的区别在哪里,所以今天专门记录一下.相同点都包含字段,属性,方法访问修饰符相同,可以用相同的访问修饰符都是通过关键字new实例化对象结构体和类大体上真的非常相似,但是不应该出有两个一模一样的东西对吧不同点结构体是值类型,类是引用类型,结构体在栈上开辟空间(int,float这些数据类型都是struct结构体,但是string是class类)关键字不同----枚举关键字struct,类关键字class构造方法 ---1
2021-12-06 13:56:18
733
原创 Unity 代码控制Material Shader参数数据
public Material material;///控制Shader某个参数public void ControllerMaterial(string paramName,float paramValue){ //通过Get系列方法,获取Shader各种类型参数数值 float value = material.GetFloat(paramName); //通过Set系列方法,控制Shader各种类型参数数值 material.SetFlo.
2021-11-08 17:27:20
3487
原创 UGUI 刷新rectTransform
LayoutRebuilder.ForceRebuildLayoutImmediate(unitContent.GetComponent<RectTransform>());
2021-11-02 17:45:42
362
原创 Unity 打开摄像头
打开摄像头,给项目一个纯透明的背景会不会很酷呢 void Start() { instance = this; OpenCamera(); } public void OpenCamera() { StartCoroutine("StartCamera"); } public IEnumerator StartCamera() { yield return Applicatio.
2021-09-29 10:10:42
1605
原创 加载AB包(AssetBundle),通过Manifest文件,加载依赖
加载AB包依赖,需要读取主包信息除了我们设置的ab包之外,会自动根据文件夹名字生成一个包自动生成的包有什么用呢,我们先简单说一下里面有什么东西吧AssetsBundle也是一个二进制文件,AssetsBundle对应的mianfest文件,可以用记事本打开,这个mianfest文件里面记录了当前目录生成了哪些AssetBundle文件,和这些AssetBundle文件的依赖关系Dependencies信息就是依赖信息,uiPage依赖uiPlist,所以加载uiPage的时候需要..
2021-08-27 10:05:39
2090
原创 C# String字符串中是否包含指定字符 关键字查找
string test ="测试一下关键字";if(test.Contains("一下")){ //包含指定字符}else{ //不包含指定字符}
2021-08-23 11:27:06
2803
原创 Unity 从服务器下载文件,保存到本地(Android,Windows)
使用UnityWebRequest进行下载操作下载完成后,把文件保存在Application.persistentDataPath目录下面persistentDataPath:常用的做本地缓存目录,它的读写权限都是开放的/// <summary>/// 从服务器下载资源/// </summary>/// <param name="uri">资源地址</param>/// <param name="fileName">文件名字&
2021-08-18 16:09:12
4938
3
原创 Unity 使用TexturePacker打包图集
Unity打开Unity Ctrl+9,打开Unity商店,下载TexturePacker Importer插件这个插件是用来解析图集文件的,是免费的TexturePacker打开TexturePacker,右侧是设置栏,一般基础设置就够用了选择Unity框架:设置界面右下角,会将文件最终算出的大小告诉你,你可以按照你的需求调整纹理格式在高级设置界面,有布局选项博主测试,大小限制,使用任意尺寸,Unity读不出来,比较奇怪,所以在设置这一项的时候,一定要用你.
2021-08-18 15:56:12
1525
1
原创 托管项目 Sourcetree
简介SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端管理工具,同时也是Mn版本控制系统工具。支持创建、克隆、提交、push、pull 和合并等操作。SourceTree拥有一个精美简洁的界面,大大简化了开发者与代码库之间的Git操作方式,这对于那些不熟悉Git命令的开发者来说非常实用。官网地址Git官网地址SourceTree安装包有下载Git的功能,但是下载速度很慢,而且很大概率回断掉,可以提前下载好Git,如果官网下载速度太慢,
2021-07-02 16:29:07
550
1
原创 Cocos——TextruePacker打包图集
在Cocos游戏开发中,我们为了对资源优化,一般都会将图片打成图集节省资源占用。我们发布小游戏平台的时候,平台对资源大小限制很严格,即使游戏分包可以缓解一下这个问题,但是资源大小依旧
2021-06-17 13:59:18
1254
原创 Cocos实战——新建项目
创建新项目依次选择版本号,设置项目名称,设置项目的目录,确定之后点击创建并打开引擎界面打开之后,这个面板风格非常Unity,区别就是多了一个控件库控件库里面有一些预制件,可以直接拖到到层级面板使用,也可以拖动到我们的对象上,给它添加组件右键属性面板,就可以添加对象右键资源面板,可以创建一些资源文件,包括脚本场景材质球等等点击层级面板或者资源面板可以在属性面板查看他们的属性控制台(引擎自带的控制台我们基本用不到,我们调试的时候,会用到谷歌浏览器,F.
2021-06-07 11:30:14
1461
原创 Cocos游戏开发第一步,安装需要的软件和环境配置
本篇是基础篇,引导大家最基本的项目配置东市买鞍鞯安装Cocos:Cocos官网
2021-06-04 14:25:08
3035
1
原创 C#静态方法
我们之前讲C#有好多种类的方法,构造方法,抽象方法等等,但是如果我们认真观察会发现,所有的方法,都分为静态方法和非静态方法.就像我们的身份证一样,你可以是男性,也可以是女性.但是w
2021-06-01 09:51:24
3317
2
原创 C# 扩展方法
今天我们学习C#的扩展方法我们编程中常用构造方法,虚方法,抽象方法,偶尔可能还会用到析构函数,但什么是扩展方法呢?扩展方法的作用扩展方法的作用,当我们需要修改底层接口,给它多增加一些功能,但是接口继承之后是一定要实现的,可能会对我们上层的代码影响比较大.又或者我们需要使用到一个密封类,但是它功能不够了,我们不能继承密封类,又想用怎么办呢,也可以用扩展方法来解决问题.听起来是不是特别厉害,但是实现扩展方法其实不难,我们用代码结合现实例子来解释扩展方法扩展接口 /// 定义一个学习接口 pub
2021-05-26 13:42:56
900
2
NatCorder - Video Recording API 1.7.1.unitypackage
2020-04-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人