Unity
枫十七
学习之路,贵在坚持。以三尺青锋,破万丈苍穹!
展开
-
HashSet
实用派记录:与List效率对比图。原创 2022-11-04 09:42:47 · 86 阅读 · 0 评论 -
ILRuntime foreach 存在GC
ILRunitme foreach 存在GC。原创 2022-07-19 10:29:33 · 370 阅读 · 2 评论 -
关于协程记录一下
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 阅读 · 0 评论 -
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 · 2243 阅读 · 0 评论 -
判断某一点是否在包围盒内: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 · 3868 阅读 · 1 评论 -
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 阅读 · 0 评论 -
2021-10-30
转载自马三大佬 =>建议直接看原文(感谢马三大佬,改变了我的认知)链接 :【Unity游戏开发】SpriteAtlas与AssetBundle最佳食用方案 - 马三小伙儿 - 博客园一、简介 在Unity步入2019.4以后,新版的SpriteAtlas日趋完善,已经完全可以在商业项目中使用了。但是纵观网络平台上,许多关于SpriteAtlas的文章还停留在2018的初版时期,其中许多解释在现在看来都是过时的,许多国内知名论坛上还有各种错误的结论和教程。如果按照这种错误的教程来使用S..转载 2021-10-30 17:06:26 · 280 阅读 · 0 评论 -
自定义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 阅读 · 0 评论 -
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 评论 -
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 · 530 阅读 · 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 · 419 阅读 · 0 评论 -
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 · 349 阅读 · 0 评论 -
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 · 666 阅读 · 1 评论 -
写个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 · 852 阅读 · 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 · 323 阅读 · 0 评论 -
Unity的各种射线检测方法性能对比
以下皆为万次循环消耗:ScreenPointToRay:摄像机到屏幕的一条射线平均8.9ms ScreenToWorld:屏幕坐标转世界坐标平均6.7msPhysicRaycast:从一点向一个方向发射一条射线平均18.3ms (检测物体越多,消耗越大)OverlapSphere:球形范围检测平均15ms (检测物体越多,消耗越大,有GC)SphereCast:球形投射(检测到一个就返回)平均18.5ms(无GC)SphereCastAll:.原创 2021-06-25 00:12:16 · 4642 阅读 · 0 评论 -
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 · 3800 阅读 · 0 评论 -
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 阅读 · 0 评论 -
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 · 1945 阅读 · 0 评论 -
Visual studio 生成dll 供Unity调用
Visual Stuido 创建新项目创建类库生成dll把dll放在unity中,调用原创 2021-04-09 15:28:12 · 247 阅读 · 0 评论 -
让Visual Studio 支持Unity 的shaderlab语法提示
以VS2019为例:点击扩展->管理扩展 搜索shader,VS支持的shader语言就全部出来了,点击安装ShaderlabVS下载完成后关闭 VS 让他执行下一步:安装失败了 。。。。。完全看不明白是啥,修复vs试试...原创 2021-04-09 10:51:17 · 4037 阅读 · 0 评论 -
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 · 1432 阅读 · 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 · 1347 阅读 · 0 评论 -
Unity RaycastHit .textureCoord 返回vector.zero
用Mesh Collider 检测。。。原创 2021-04-02 15:52:16 · 902 阅读 · 0 评论 -
Unity 改变物体顶点色
扩展方法:Mesh的部分信息展示:原创 2021-04-01 11:14:48 · 2135 阅读 · 3 评论 -
Unity突然出现的JAVA_HOME is not set and no ‘java‘ command could be found in your PATH
某一天,我正在愉快的打包测试,上一秒还能打包,下一秒,然后。。。。打包报错了 。。。。。。。注:我Java环境完全可用的状态下JAVA_HOME is not set and no 'java' command could be found in your PATH百度是最好的解决方式:https://forum.unity.com/threads/java_home-is-not-set-and-no-java-command-could-be-found-in-your-path.74026原创 2021-03-31 16:24:04 · 1354 阅读 · 1 评论 -
Unity已存在。您无法加载相同的版本
这警告,也是醉了,完全不知道在说啥。最后尝试重新激活序列号解决了(无语)原创 2021-03-29 18:20:23 · 1612 阅读 · 0 评论 -
GameFramework框架解读(FSM 基于《Star Force》Demo)
基于 这篇博客的Entiy(https://blog.csdn.net/LM514104/article/details/115260651)(如果不了解Entity用法,请先看这篇博客)首先 、对于Enity绑定FsmComponent组件代码流程 : 1、在Entity脚本中,创建Fsm2、创建两个状态,进行状态之间的切换:...原创 2021-03-29 14:49:09 · 424 阅读 · 0 评论 -
GameFramework框架解读(Log 基于《Star Force》Demo)
使用方式:原创 2021-03-29 10:27:38 · 193 阅读 · 0 评论 -
GameFramework框架解读(AB打包、加载、热更流程 基于《Star Force》Demo)
1、单机模式 (1) 先进行设置: (2) Start Build Resources 得到文件运行即可。2、 热更 流程 (1) 修改第一步中的Resource 如图: (2):打更新包 (3)得到文件放到服务器 (4)配置版本文件 : (5) 配置版本字段的值: (7):配置BuildInfo文件 (8) 运行最终效果: ...原创 2021-03-27 19:05:13 · 2396 阅读 · 3 评论 -
GameFramework框架解读(Sound 基于《Star Force》Demo)
Sound:1、先对声音分组2、播放声音 、 音乐 、 UI声音 , 其实都一样 只是做了分类原创 2021-03-27 15:09:58 · 351 阅读 · 0 评论 -
GameFramework框架解读(Scene 基于《Star Force》Demo)
原创 2021-03-27 14:31:08 · 308 阅读 · 0 评论 -
GameFramework框架解读(Download 基于《Star Force》Demo)
Download:架个服务器 (HFS) ,把要下载的文件放上去:原创 2021-03-27 11:13:53 · 271 阅读 · 0 评论 -
GameFramework框架解读(Entity 基于《Star Force》Demo)
Entity1、创建预制体 , 和实体脚本 实体脚本继承EntityLogic 重写内部方法:2、实体分组: (对应下文实体生成分组名称)3、实体创建和隐藏原创 2021-03-27 10:13:34 · 731 阅读 · 0 评论 -
GameFramework框架解读(对象池 基于《Star Force》Demo)
1、创建池:2、需要一个脚本控制类,以及一个继承ObjectBase池子对象类3、创建,回收,销毁 方法原创 2021-03-26 16:51:49 · 412 阅读 · 0 评论 -
GameFramework框架解读(Event 基于《Star Force》Demo)
原创 2021-03-26 14:03:14 · 227 阅读 · 0 评论 -
GameFramework框架解读(UI 基于《Star Force》Demo)
1、创建UI预制体:2、创建脚本继承UGuiForm ,挂在到对应的预制体上3、配置表 ,配置界面枚举, 如下图:开界面方法:开对话框类型的方法:界面打开回调方法:(做一些初始化操作)界面关闭回调:...原创 2021-03-26 13:26:54 · 597 阅读 · 0 评论 -
GameFramework框架解读(数据表 基于《Star Force》Demo)
打表:固定表格形式: # 标志字段类型注释,自动生成脚本:生成的二进制文件 (保留原文件(txt)):使用方法:原创 2021-03-26 11:07:58 · 735 阅读 · 0 评论