个人心得
文章平均质量分 58
我听到你了
Unity开发工程师,希望广泛交友,一起学习
展开
-
Unity Animator parameters
Layers/Parameters面板该区域实际上由两个标签页构成,它们分别是Layers和Parameters。Layers标签页中的内容在小型项目中我们基本用不到,没有具体的人物模型也不好学习,暂时你可以忽略它。而另外一个Parameters标签页中的内容可以说是Animator必需的,包含了我们在Animator中使用的所有“参数”。在拥有多个动画短片的控制器中,正是通过Parameters中的参数实现了不同动画间的转变。切换到Parameters标签页后,我们可以通过点击“+”创建4...原创 2021-02-23 16:28:06 · 5046 阅读 · 6 评论 -
unity协程返回含义
yield return null; 下一帧再执行后续代码yield return 0; 下一帧再执行后续代码yield return 6;(任意数字) 下一帧再执行后续代码yield break; 直接结束该协程的后续操作yield return asyncOperation;等异步操作结束后再执行后续代码yield return StartCoroution(/*某个协程*/);等待某个协程执行完毕后再执行后续代码yield return WWW();等待WWW操作完成后再执行后续代码yi原创 2020-10-20 20:32:22 · 663 阅读 · 0 评论 -
Tolua 报错cannot load incompatible bytecode
需要生成相应平台的bytecode,安卓上是32位,iOS区分两套bytecode,然后给luavm相应的Wins端编译器上需要使用64位的,我的就是因为编译器端用了32位的所以报错的。另外附上判断位的代码:/// <summary> /// 此属性的值在 32 位进程中为 4,在 64 位进程中为 8 /// </summary> public static bool isX86_X64 { get {原创 2020-10-20 16:40:56 · 2122 阅读 · 1 评论 -
unity中预览lua文件
using UnityEditor;using System.IO;using UnityEngine;[CustomEditor(typeof(UnityEditor.DefaultAsset))]public class ShowLuaFile : Editor{ public override void OnInspectorGUI() { base.OnInspectorGUI(); var path = AssetDatabase.Ge.原创 2020-09-10 09:31:47 · 215 阅读 · 0 评论 -
lua反射的一个例子
原创 2020-09-04 18:13:06 · 498 阅读 · 0 评论 -
GetComponentInParent 和 GetComponentsInParent的区别
GetComponentInParent 返回的是一个Canvas(最先找到的并且显示状态的对象,如果所有父节点都没有显示返回null)GetComponentInParent 返回的是一个Canvas[](可以通过传参找到包括隐藏状态的父节点)...原创 2020-01-07 09:51:11 · 3518 阅读 · 0 评论 -
UGUI是如何频繁访问Image/Text等组件的raycastTarget的(读源码有感)
1.EventSystem会在Update中调用所有BaseInputModule的Process2.在StandaloneInputModule中overrideProcess会调用ProcessTouchEvents函数,ProcessTouchEvents调用GetTouchPointerEventData函数。GetTouchPointerEventData中调用eventSyste...原创 2019-12-31 09:56:06 · 463 阅读 · 0 评论 -
点击场景中的物件无法定位到Hierarchy
解决办法:重选一下layout里面的Default原创 2019-12-28 15:31:51 · 656 阅读 · 1 评论 -
C#中的正则表达式 \(([^)]*)\) 详解
这个的意思是取()和括号里面内容,\(这个是转义成“(”,([^)]*)这部分是取非“)”的任意个字符,其中括号代码子集,[]代表取取值范围,^)代表非),*代表任意个字符,“\)”转义成“)”。差不多就这个意思吧。[^ 字符分组 ] 非:与不在 [] 中的任何单个字符匹配。( 子表达式 ) 捕获匹配的子表达式并将其分配到一个从零开始的序号中。...原创 2019-12-27 13:15:07 · 1626 阅读 · 0 评论 -
C#删掉了发给lua的对象造成lua实际的Obj无效,解决办法
C# 这边 new 了一个GameObject 对象并发给Lua那边, 这时C# 这边在通过GC释放掉这个对象;lua 那边会报错;遇到这种问题的两种方式解决方案:1.lua一个 sprite对象如果被引擎释放了,那引用它的变量怎么不是nil每一个lua引用的GameObject都有独立的 引用索引,当 lua的 对象的生命周期结束, 调用 原方法 _gc,会减去 一个引用计数,当...原创 2019-12-19 20:28:16 · 804 阅读 · 0 评论 -
将C#的Dic转成Lua的Table&&将C#的List转成Lua的Table
function UIUtils.DicToTable(CSharpDic) --将C#的Dic转成Lua的Table local dic = {} if CSharpDic then local iter = CSharpDic:GetEnumerator() while iter:MoveNext() do lo...原创 2019-12-19 13:41:41 · 1729 阅读 · 0 评论 -
lua 闭包探索
简单测试了一下,不管闭包函数多复杂,取自同一个闭包函数的值,都继承上一次相同的调用,不同的调用则重新开始赋值原创 2019-12-18 21:06:52 · 97 阅读 · 0 评论 -
对lua 实现面向对象的理解
对lua 实现面向对象的理解:主要是通过__index 和__newindex来实现,下面给出云风大神写的一个例子:给class_type这个表赋值时,因为用了__newindex所以实际上是给vtbl这个表进行赋值,也就是你新建一个脚本,写的所有函数和变量其实都是写到了vtbl这个空表中,你访问class_type即是通过__index 来访问vtbl,如果传入了父类super,当你访问v...原创 2019-12-18 19:27:54 · 221 阅读 · 0 评论 -
解决PlayerSettings中的splash Image资源发现在内存中卸载不掉
问题如标题所示,不废话,直接上代码 private GameObject kLoading = null; private Texture tex = null; void Awake() { loading = kLoading.transform.Find("LoadingProgress").gameObject; }vo...原创 2019-12-06 15:25:34 · 362 阅读 · 0 评论 -
C#项目”XXXXX”针对的是”.NETFramework,Version=v4.7.1”但此计算机没有安装它
遇到这样一个问题:C#项目”XXXXX”针对的是”.NETFramework,Version=v4.7.1”但此计算机没有安装它就是我在打开别人的项目,发现别人的项目.Net Framework的版本 高于我电脑的版本(准确的说是“高于我开发环境.Net Framework的版本”)。可以选择降低版本(选第一个):不推荐,a: 因为别人版本高,你的版本低,不同步,万一你们代码合并呢?s...转载 2019-12-05 14:46:46 · 18071 阅读 · 4 评论 -
error CS1617: Invalid option 'latest' for /langversion; must be ISO-1, ISO-2, Default or an...
解决办法:Assembly-CSharp-firstpass工程属性打开“生成”---->“高级”(在最下面需要拉一下边框,坑!!!);指定“语言版本”为C#6.0。属性不能查看:打开Tool – Options,找到适用于Unity的工具(Tools for Unity),修改杂项(Miscellaneous)里面的访问项目属性(Access to project properti...原创 2019-12-05 14:37:16 · 1517 阅读 · 1 评论 -
检测制定代码部分的profiler
UnityEngine.Profiling.Profiler.BeginSample("CallMethod");UnityEngine.Profiling.Profiler.EndSample();原创 2019-12-05 13:27:08 · 210 阅读 · 0 评论 -
项目中发现 unity运行挂机放那大约半小时,运行项目变得越来越卡顿
bug描述:unity挂机半小时,会变得非常看,查看了Profiler发现是GC.MaskDependence.占据了85%以上的CPU解决:发现是有个同学在repeat 里面调用了 UnloadUnusedAssets,修正即可,代码就不贴了...原创 2019-12-05 13:24:43 · 1892 阅读 · 0 评论 -
地表特效出现马赛克
记录一下因为地表光圈特效部分是用透明shader做的,需要提升一下Y轴,否则会渲染重叠原创 2019-11-30 13:22:41 · 136 阅读 · 0 评论 -
打开unity卡在loading白屏界面
1. 在C盘的用户目录下,打开 "Administrator\AppData\Roaming" 目录2. 删除Unity目录3. 然后再到上一级目录,删除Local下的Unity 和 LocalLow下的Unity 两个目录然后再重启一下unity,不行就多重启一次,希望能帮到你...原创 2018-05-07 16:38:47 · 9504 阅读 · 5 评论 -
svn“Previous operation has not finished; run 'cleanup' if it was interrupted“报错的解决方法
第一种方法:(主要针对旧版的svn)请看:http://www.cnblogs.com/bicker/p/3312394.html第二种方法:对于新版的SVN原创 2018-05-07 19:28:09 · 1536 阅读 · 0 评论 -
Lua中的聊天屏蔽敏感词汇
注:文章转载需注明出处,违规必究。原文地址:点击打开链接最近在Xlua中做一个聊天功能,其中提供了敏感词汇表,不过我发现其中114项(共16000+项)在require时会失败导致界面加载不出来,如下:--"<\haschisch\b",--"\<an[oi]\>",--"\<anal",--"\<bagasc",--"\&...原创 2018-05-10 14:59:47 · 2713 阅读 · 1 评论 -
Lua中handler方法的使用(亲测版)
对于lua中handler方法,一直在使用,但是它的原理一直没有弄清楚,今天自己闲来无事认真测试了下,总算弄懂了,向大家分享下自己的心得我在一个类里面写输出:而handler做的正是相同的事,相当于他帮你在handler的第一个参数传入的OBJ对应的类中重新写了一个和第二个参数相同的function,但是self换成了自己的属性。简而言之,就是:handler(nowSelf,...原创 2018-05-12 18:01:38 · 1883 阅读 · 0 评论 -
lua32位和64位字符串和Uint之间的转换
---字段ID转换(字符串转换成32位)function UIUtils.GetStr2ID(strID) return (string.byte(strID, 1) << 24) | (string.byte(strID, 2) << 16) | (string.byte(strID, 3) << 8) | (string.byte(strID, ...原创 2018-06-05 09:52:24 · 4861 阅读 · 0 评论 -
表情制作
前言因为有不少同学反应在使用图文混排的时候,出现很大的性能问题,导致画面帧率不稳定,甚至极低。博主对此非常抱歉,当时仅凭兴趣,在一个个功能上不断叠加,几乎没有考虑到性能的优化。这次有几天的空余时间,就针对图文混排做了一次整理和优化。其实,这篇博客比较发得比较晚,在github上博主都是及时更新了代码,有兴趣的同学欢迎关注。不过,博主对图文混排并没有实际的使用机会,可能有些地方还有考虑不完善的地...原创 2018-06-11 15:34:23 · 183 阅读 · 0 评论 -
行军导航过程中导向箭头
最近在做大地图,行军导航过程中会试用到导向箭头,这里整理下实现的过程。最终效果箭头实例图思路分解1 地图上会有很多这种指向的箭头,同时长度是不固定的,需要根据不同的起始点和终点进行计算角度和方向2 长度在Unity中可以通过scale进行控制3 需要重复的箭头,要实现图片平铺的效果,这里就有一个Tiling的概念4 如果需要移动,可以使用材质的Offset属性5 ...原创 2018-07-05 10:50:29 · 1484 阅读 · 0 评论 -
Unity2017探究Layout布局
1.先看一下准备测试的素材: 该图片尺寸269*1602.我们建立一个空节点,加上layout,,如图所示:默认两个子节点的大小都是100*100我们先勾上Child Controls Size的Width,于是:如图所示,两个Image的widt...原创 2018-07-11 15:05:26 · 1252 阅读 · 0 评论 -
lua去除特殊字符
lua只要用 string.byte(s, i) 取到字符的byte值(字符集通常记 code point)。比较第一个字节是228-233,而且接下来两个字节都是 128-191,就可以简单认定为中文了。这里以一个例子说明,比如我要过滤特殊字符,保留中文、英文和数字。function filter_spec_chars(s) local ss = {} local ...原创 2018-09-04 11:42:55 · 6775 阅读 · 1 评论 -
Lua设置只读表
简单理解一下:在lua中,当你从一个Table中查询值的时候,实际上是Lua解释器触发了_index ,而当你赋值时,则是访问了_newindex ,如果_newindex存在就会调用这个函数,而不进行赋值。所以重写这两个函数就可以达到只读表的效果:function table_read_only(t)local temp= t or {}local mt = ...原创 2019-05-13 10:01:51 · 1887 阅读 · 1 评论