自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(136)
  • 收藏
  • 关注

原创 Unity Addressables热更流程

2、下载的AB资源在 :C:\Users\Administrator\AppData\LocalLow\Unity。3、Assets/AddressableAssetsData/Android下为热更记录文件,打热更包所需。1、热更下载的catalog文件在 Application.persistentDataPath。选择上述三、3的文件。1、Assets同级目录下,ServerData内,包含所有所需文件。六、热更,创建服务器,把ServerData/Android放上去。一、分组(网上教程一大堆)

2023-05-31 11:31:42 2682

原创 Java调用C#

错误: 严重性代码说明项目文件行禁止显示状态错误C7681 C++/CLI 或 C++/CX 不支持两阶段名称查找;由于项目采用Hybrid热更,走纯C#开发,目前战斗由客户端到服务端(客户端提供dll),服务端负责调用,故需要走Java 调C# dll逻辑。1、生成C#dll,放在java工程所用的jdk,bin目录下。出现上述错误:属性->c/C++/语言->符合模式(否)属性->高级->公共语言运行时支持(/clr)注意:属性->常规->配置类型(动态库.dll)2、创建C++ dll。

2023-05-16 20:18:25 2263 2

原创 Unity TextMeshPro 毛边问题

关闭Post Processing.或者关闭抗锯齿可解决。也可采用高端抗锯齿算法(SMAA)结果是因为开了主相机的Post Processing 加低级抗锯齿(FXAA)导致的。边缘像素透明度拉高了。

2023-04-19 13:59:37 642

原创 Unity 查Crash

首先获得堆栈信息,AS然后找Unity的NDK目录下的arm-linux-androideabi-addr2line(对应arm v7),或者aarch64-linux-android-addr2line(对应 arm 64) 具体用哪个取决于手机是哪个框架。cmd对应库选择自己AS编译出来的库,或者Unity导出的符号表解压。

2023-04-14 11:37:58 335

原创 Android 10 安装兼容

android:exported = true

2023-04-10 18:18:27 140

原创 C# 代码创建DLL

【代码】C# 代码创建DLL。

2022-12-26 16:34:47 1611

原创 HashSet

实用派记录:与List效率对比图。

2022-11-04 09:42:47 86

原创 ILRuntime foreach 存在GC

ILRunitme foreach 存在GC。

2022-07-19 10:29:33 373 2

原创 Unity调用protoc.exe生成C#脚本

public void GenProtoCSFile() { string protogen = UnityEngine.Application.dataPath + "/SFrame/Editor/TableEditor/ExcelTool/Editor/ExcelProto/protoc.exe"; string protoDir = ToProtoFile.Instance.ProtoDir; List<string> cmds =.

2022-05-13 10:08:57 884

原创 关于协程记录一下

void Start() { Print = Prints(); } private IEnumerator Print; void Update() { if (Input.GetKeyDown(KeyCode.S)) { StartCoroutine(Print); } if (Input.GetKeyDown(KeyCode.T)) {...

2022-03-09 15:13:05 6627

原创 Unity获取Animator中的动画片段时长

m_Animator = transform.GetChild(0).GetComponent<Animator>(); AnimationClip [] animationClip = m_Animator.runtimeAnimatorController.animationClips; foreach (var item in animationClip) { if (item.name.Equals("up...

2021-11-29 15:01:34 2247

原创 判断某一点是否在包围盒内:Bounds.Contains

蒙皮网格获取方法:SkinnedMeshRenderer : m_Bounds = colliderTran.GetComponent<SkinnedMeshRenderer>().sharedMesh.bounds;普通网格获取方法:m_Bounds = colliderTran.GetComponent<MeshFilter>().mesh.bounds;注意:m_Bounds的中心点,此时为模型中心点,并非世界坐标中心点。要判断是否包...

2021-11-29 14:22:26 3871 1

原创 RijndaelManaged 加解密

/// <summary> /// 加密 /// </summary> /// <param name="jsonStr"></param> /// <returns></returns> private static string Pass(string jsonStr) { byte[] keyArray = U.

2021-11-17 11:52:09 1603

原创 Unity Could not produce class with ID 136.

进此链接,查找被裁剪掉的类:Unity - Manual: YAML Class ID Reference创建一个文件link.xml,放到unity工程目录下,任意位置,写入被裁剪的类<linker> <assembly fullname="UnityEngine"> <type fullname="UnityEngine.TerrainCollider" preserve="all"/> </assembly></linker&g

2021-11-16 12:12:21 2912

转载 2021-10-30

转载自马三大佬 =>建议直接看原文(感谢马三大佬,改变了我的认知)链接 :【Unity游戏开发】SpriteAtlas与AssetBundle最佳食用方案 - 马三小伙儿 - 博客园一、简介  在Unity步入2019.4以后,新版的SpriteAtlas日趋完善,已经完全可以在商业项目中使用了。但是纵观网络平台上,许多关于SpriteAtlas的文章还停留在2018的初版时期,其中许多解释在现在看来都是过时的,许多国内知名论坛上还有各种错误的结论和教程。如果按照这种错误的教程来使用S..

2021-10-30 17:06:26 280

原创 自定义IEnumerator

1、启动脚本public class IEnumeratorTeset : MonoBehaviour{ void Update() { if (Input.GetKeyDown(KeyCode.I)) { StartCoroutine(Testtt()); } } IEnumerator Testtt() { Debug.LogError("Go ");

2021-10-12 21:43:09 175

原创 ILRuntime断点调试

官方文档:从零开始 — ILRuntimeILRuntimehttp://ourpalm.github.io/ILRuntime/public/v1/guide/tutorial.html直达链接 :Releases · Ourpalm/ILRuntime · GitHubPure C# IL Intepreter Runtime, which is fast and reliable for scripting requirement on enviorments, where jitting isn't

2021-09-22 17:52:49 1051 10

原创 Visual Studio生成Dll(已跳过全部重新生成)问题

问题如下:解决方案:生成成功

2021-09-06 15:38:04 2673 1

转载 Visual Studio 2019快速删除所有空行

Visual Studio没有自动删除空行的功能,但有的时候我们又需要删除空行。一般空行比较少的情况下,我们都会手动选中空行,然后逐一进行删除。难题就在于,一旦空行数量比较多,再这样去删除空行,那将是一项非常让人头疼的事情。办法总比困难多,一个轻松且有效的办法是,使用正则表达式。要使用的正则表达式如下:^\s*$^代表行首,$代表行尾,中间的\s(注意是小写的s)代表任意不可见字符,例如空格、Tab等等,*代表匹配\s任意次。此次测试的环境为Visual Studio 2019,

2021-08-25 15:25:42 2807

原创 Unity工具添加Scene到Build In Scene

using System.IO;using UnityEditor;using UnityEngine;public class SceneInBuild : Editor{ private static readonly string scenePath = "Scenes"; [MenuItem("Tool/BuildMainScene")] static void RefreshAllScene() { string path = Path..

2021-08-12 09:23:12 1651

原创 Unity编辑器进度条处理文件

执行 EditorApplication.update = PacketFile; private static void PacketFile() { bool isCancel = EditorUtility.DisplayCancelableProgressBar("...Deal Folder", _dir.Name, (float)i / (_cout - 1)); if (isCancel || i >= (_cout.

2021-07-31 16:52:32 531 2

原创 UnityWebRequest,Pos请求需要解码

简易服务器代码:using System;namespace HttpServer{ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using System.Net; class Program {

2021-07-31 09:24:17 420

原创 C# TimeZone被TimeZoneInfo代替

string localID = TimeZoneInfo.Local.Id; Debug.Log(localID); DateTime StartDateTime = TimeZoneInfo.ConvertTime(new DateTime(1970, 1, 1), TimeZoneInfo.FindSystemTimeZoneById("China Standard Time")); DateTime StartDateTime.

2021-07-29 17:31:14 3039

原创 Unity编辑器,点击跳到文件位置

string _path = fileInfo.FullName; int index = _path.IndexOf("Assets"); _path = _path.Remove(0, index); Object obj = AssetDatabase.LoadAssetAtPath<Object>(_path); Editor..

2021-07-23 17:09:35 998 2

原创 C#反射和程序集

今天通过程序集整理代码,突然发现框架报错了,所有的类都反射不到了。原写法: Type t = Type.GetType(_type.ToString()); System.Object obj = Activator.CreateInstance(t, true);由于所有需要反射的没有分程序集,也就是在默认程序集Assembly-CSharp下,而框架层分在Frame程序集下,导致反射失败。修改后的写法:先获取需要反射类所在的程序集System.Ref

2021-07-22 21:11:22 350

原创 Unity检测多个层级

if (Physics.SphereCast(_pos, 0.5f, Vector3.down, out RaycastHit hitInfo, 100, 1 << LayerMask.NameToLayer("Entity") | 1 << LayerMask.NameToLayer("Entity2"), QueryTriggerInteraction.Ignore))(如上代码段)层级用 1<<要检测的层...

2021-07-17 19:15:46 667 1

原创 记一次Unity冷启动过慢的问题

通过AndroidLogCat获取如下关键信息:PlayerConnection initialized network socket : 0.0.0.0 55035PlayerConnection initialized unix socket :Waiting for connection from host on [0.0.0.0:55035]...一度怀疑是自己资源管理有问题翻到一篇文章:https://stackoverflow.com/questions/5599080.

2021-07-08 14:45:54 862 2

原创 AndroidStudio历史版本下载地址

https://developer.android.google.cn/studio/archive#android-studio-3-0?utm_source=androiddevtools&utm_medium=website

2021-07-02 19:24:27 439

原创 写个Unity 简单使用Protobuffer进行网络传输的Demo

博主用的protobuf3.10.0的版本下载资源文件先去GitHub去下载两个东西链接:https://github.com/protocolbuffers/protobuf/releases/tag/v3.10.0第一个:protobuf的C#包第二个:protobuf的转化工具下载得到的两个资源 ->解压导入资源文件1、把这个文件导入到客户端和服务端(也可以生成Dll再导入,看个人习惯)Unity导入后如下图2、写protobuf文件

2021-06-26 17:47:14 853 4

原创 Unity 不同层级物体碰撞检测

调整碰撞检测层相交

2021-06-25 10:09:13 1283 1

原创 Unity Layer不同环境用法区分

设置物体层级,用十进制,layer层获取方法LayerMask.NameToLayer("UI");例如:gameObject.layer =LayerMask.NameToLayer("UI");射线检测类的方法,用二进制,layer层获取方法LayerMask.GetMask("Entity")例如: Physics.OverlapSphere(Pos,0.2f,LayerMask.GetMask("Entity") );...

2021-06-25 09:58:47 324

原创 Unity的各种射线检测方法性能对比

以下皆为万次循环消耗:ScreenPointToRay:摄像机到屏幕的一条射线平均8.9ms ScreenToWorld:屏幕坐标转世界坐标平均6.7msPhysicRaycast:从一点向一个方向发射一条射线平均18.3ms (检测物体越多,消耗越大)OverlapSphere:球形范围检测平均15ms (检测物体越多,消耗越大,有GC)SphereCast:球形投射(检测到一个就返回)平均18.5ms(无GC)SphereCastAll:.

2021-06-25 00:12:16 4651

原创 Unity使用Strip Engine Code

Code Strip就是代码裁剪。开启代码裁剪,能够在build时将项目中没有用到的代码裁减掉,以减少build出的代码量。如果使用了il2cpp,由于build过程中先生成CIL然后再生成cpp代码。所以开启Managed code stripping之后,能减少CIL的生成,从而加快cpp生成的过程。强制保留的方法:使用[Preserve]标签,可以对Assembly、Type、Field、Properties、Method使用。 使用Link.xml文件,在文件中写明需要保留的代码,使用

2021-04-27 21:30:42 3803

转载 Shader 模型部分顶点变色

Shader "Custom/dfs" { Properties{ _Color("Color", Color) = (1,1,1,1) _Color1("Color1", Color) = (1,0,0,0) _MainTex("Albedo (RGB)", 2D) = "white" {} _Glossiness("Smoothness", Range(0,1)) = 0.5 _Metallic("Metallic", Range(0,1)) = 0.0 _Cl..

2021-04-12 17:06:09 371

原创 Not allowed to access vertices on mesh ‘Combined Mesh (root: scene)

Not allowed to access vertices on mesh 'Combined Mesh (root: scene)' (isReadable is false; Read/Write must be enabled in import settings)第一眼看报错,还以为网格信息没允许读写后来发现是因为物体勾选Static导致的

2021-04-12 16:09:32 1946

原创 GameFramework创建自己的 Assembly Definition后,Hepler找不到问题

关键点在于help制定了查询的程序集:修改这些位置,改为自己Assembly Definition的名称即可

2021-04-09 20:04:32 178

原创 Visual studio 生成dll 供Unity调用

Visual Stuido 创建新项目创建类库生成dll把dll放在unity中,调用

2021-04-09 15:28:12 248

原创 让Visual Studio 支持Unity 的shaderlab语法提示

以VS2019为例:点击扩展->管理扩展 搜索shader,VS支持的shader语言就全部出来了,点击安装ShaderlabVS下载完成后关闭 VS 让他执行下一步:安装失败了 。。。。。完全看不明白是啥,修复vs试试...

2021-04-09 10:51:17 4045

原创 Unity 动态Navigation参数动态设置

Unity 动态Navigation方法,见上篇博客:https://blog.csdn.net/LM514104/article/details/115479030自定义烘培参数:(在Bake()和UpdateNavMesh里面修改如下,(为做区分)异步自定义参数,同步用了默认参数)1、先定义外部可修改的参数: //用世界单位表示的代理的半径 public float agentRadius = 0.2f; // 代理的高度,以世界单位计算 public floa.

2021-04-07 16:31:34 1433 1

转载 Unity NavMesh动态烘培和绘制

原文链接:https://www.cnblogs.com/koshio0219/p/12195974.html前提:随着Unity5.6的推出,我们终于迎来了NavMesh的动态烘培,我们期待已久的功能终于来了,不用再研究A*算法了,话说改进的网格寻路更加方便高效。Unity5.6 更新概要(中文版):http://mt.sohu.com/it/d20170401/131548770_280780.shtmlUnity5.6更新概要(英文版):https://blogs.unity3d.com/

2021-04-07 10:10:37 1348

Excel生成Proto类、Proto管理类、Bytes文件 C#源码

1、通过Excel生成Proto文件。 2、通过Proto文件创建Proto类。 3、通过Proto类,序列化出Bytes文件。 (1)差异化打表,加快打表速度。 (2)强力打表,以上三个流程全部走一遍。 (3) 只更新 Bytes 数据文件 4、自定义Proto读取管理类(可自己实现)。 5、根据Excel文件生成C#对应枚举,加快开发。 6、单独处理网络proto文件,创建Proto类

2022-12-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除