知识理解
文章平均质量分 53
我听到你了
Unity开发工程师,希望广泛交友,一起学习
展开
-
EventSystem.current.IsPointerOverGameObject()方法,作用:判断点击是否点击在UI上
if(Input.getTouch(0).phase==TouchPhase.Moved&& //第一个手指 Input.getTouch(1).phase==TouchPhase.Moved) //第二个手指。if(Input.touchCount> 0 && Input.GetTouch(0).phase == TouchPhase.Began)//手指按下并且触点大于0。二: 上面介绍的是单手指触发事件,下面介绍的是多手指触发事件。转载 2022-10-11 14:52:56 · 1055 阅读 · 1 评论 -
EmmyLua For Intellij IDEA注解功能的一些用法
EmmyLua注解功能只是单纯的辅助编辑器代码提示以及其它功能,和Lua代码的实际运行逻辑没有任何关系,因为它们就是普通的Lua注释。功能来增加代码提示以及其它编辑器功能。EmmyLua 编辑器插件利用注解。原创 2022-09-01 20:47:27 · 511 阅读 · 0 评论 -
用好lua+unity,让性能飞起来——lua与c#交互篇
在看了uwa之前发布的《Unity项目常见Lua解决方案性能比较》,决定动手写一篇关于lua+unity方案的性能优化文。整合lua是目前最强大的unity热更新方案,毕竟这是唯一可以支持ios热更新的办法。然而作为一个重度ulua用户,我们踩过了很多的坑才将ulua上升到一个可以在项目中大规模使用的状态。事实上即使到现在lua+unity的方案仍不能轻易的说可以肆意使用,要用好,你需要知道很多。因此,这篇文章是从一堆简单的优化建议里头,逐步挖掘出背后的原因。...转载 2022-08-04 14:57:31 · 1807 阅读 · 0 评论 -
Unity 检测对象是否在相机的视锥体范围内
代码】Unity 检测对象是否在相机的视锥体范围内。转载 2022-08-03 15:21:45 · 745 阅读 · 0 评论 -
UNITY_DOTWEEN_PATH路径动画的使用
using System.Collections;using System.Collections.Generic;using System.Linq;using DG.Tweening;using UnityEngine; public class PathManager : MonoBehaviour{ public Transform[] Pos; // Start is called before the first frame update void.转载 2022-01-27 17:00:59 · 996 阅读 · 0 评论 -
unity读取json文件以及反序列化Dic示例
1.json字符串里的名字与C#里需要保持一致2.一、示例1,将字典类型序列化成Json字符串result = "{\"张三\":1,\"李四\":2}";Dictionary<string, int> dic2 = JsonConvert.DeserializeObject<Dictionary<string, int>>(result);foreach (var item in dic2){ Console.WriteLine(..原创 2020-11-18 16:29:34 · 497 阅读 · 0 评论 -
UNITY中使用不安全代码的相关设置
一,UNITY2018之前的版本吧必须执行以下三个步骤1,在工程属性中设置:属性-生成-允许不安全代码2,在Assets目录下增加 smcs.rsp(若打包设置中使用了.net 2.0 subset)或 gmcs.rsp(若打包设置中使用了.net 2.0),smcs.rsp或gmcs.rsp的内容均为-unsafe,不加任何空格3,设置完后,重启UNITY二,UNITY2018以后的版本1,player settings -> other settings -&g..转载 2020-11-16 09:58:56 · 1760 阅读 · 0 评论 -
Amplify Shader Editor中文手册
本篇文章翻译自Amplify Shader Editor官方文档 原文链接:http://wiki.amplify.pt/index.php?title=Unity_Products:Amplify_Shader_Editor/Manual Contents 1安装(Installation) 2编辑器(The Editor) 3画布UI交互(Canvas UI Interaction) 4材质和着色器模式(Material and Shader Mo...转载 2020-11-11 19:25:50 · 11364 阅读 · 0 评论 -
unity透明物体显示问题
总结一下Shader开启透明渲染后的一些显示问题的解决方案,考虑Zwrite,Ztest,Queue这三个属性的设置问题。首先需要记住的是:对于不透明物体,渲染的正确顺序是从前往后;对于半透明物体。渲染的顺序是从后往前。这样才能实现正确的渲染输出。注意:Alpha Test,Alphato Coverage不在讨论之列。这里涉及到的是使用Alpha Blend的物体。其次是,Unity Shader中需要注意的三个属性。Zwirte:是否开启深度缓存,默认为On。Ztest.转载 2020-10-29 11:25:32 · 2178 阅读 · 0 评论 -
Unity使用线程池
using System.Collections;using System.Collections.Generic;using System.Threading;using UnityEngine;namespace DC{ public class ThreadPoolDemo : MonoBehaviour { private void Start() { ThreadPool.QueueUserWorkItem(new WaitCallback(F.转载 2020-10-22 17:18:14 · 692 阅读 · 0 评论 -
unity中调用dll文件总结
unity中调用dll文件总结根据收集的资料,对unity中调用dll文件进行总结,目前常用的两种,在给出vs中封装dll文件的步骤。一、调用c#中的dll文件1.1封装dll文件首先新建一个项目然后创建一个类库,例如命名为Csharp using System; using System.Collections.Generic; using System.Linq; using System.Text...转载 2020-09-25 11:39:41 · 7505 阅读 · 0 评论 -
unity3D使用User32.dll
对于自定义的dll,一bai般放在plugins文件夹中http://blog.csdn.net/ycl295644/article/details/40659189对于window中中本身dll,可以直接引用,不用把dll放在文件夹中引用命名空间 using System.Runtime.InteropServices;[DllImport("User32.dll", EntryPoint = "GetWindowText")]private static extern int GetWindo转载 2020-09-25 11:36:34 · 2231 阅读 · 3 评论 -
unity资源面数规范
武器面数武器模型控制在150个三角面,187个顶点以内。贴图控制在1张,最大256*256,最好128*128。场景面数场景(地形、建筑、其他装饰物)面数控制在10000面左右,贴图控制在最多2张512*512。主角面数主角模型控制在900-1300个三角面(以最终导入unity3d中的三角面数量为准)。贴图控制在1张,最好256×256,最多512×512。小怪面数小怪模型控制在600-900个三角面(以最终导入unity3d中的三角面数量为准)。贴图控制在1张,最大256×256。注意:转载 2020-09-24 14:17:51 · 4405 阅读 · 0 评论 -
查看Windows上运行程序的异常日志
任何在windows系统上运行的程序,只要发生异常导致程序异常终止,windows都会在日志中详细记录这个异常。可以在计算机管理中查看,如图:也可以在操作中心查看,如图:转载 2020-09-11 17:31:38 · 3003 阅读 · 0 评论 -
tolua中使用protobuf3—集成lua-protobuf
lua-protobuf最近项目中需要使用lua版本的protobuf库,在Github上找到了lua-protobuf用来替换tolua中自带的pbc库,替换的原因主要有以下:正如lua-protobuf作者所说: pbc返回的并不是纯粹的Lua表,使用不方便。 项目使用protobuf3,pbc已经几年未更新,担心不能很好的支持或不支持protobuf3但lua-protobuf实际上是一个纯C的protobuf协议实现,为了可以在tolua中使用,将tolua中pbc(pb.c),替换转载 2020-09-01 10:06:23 · 2285 阅读 · 0 评论 -
Unity的lua项目为Tolua# 编译云风版protobuf
记录以备忘因为有别的现有架构,所以只是换lua中间件,同时需要protobuf,所以使用pbc加入编译。tolua#在github上就有simpleframwork可用,个人项目可以使用。下载tolua# 的runtime项目https://github.com/topameng/tolua.git到D:/tolua# 下载luapbc 项目https://github.com/cloudwu/pbc.git到D:/tolua#/pbc 此时tolua#项目结构为 修改编译脚本.转载 2020-09-01 09:45:13 · 787 阅读 · 0 评论 -
在Lua中“优雅”地使用Protobuf
Protobuf有着出色的性能、优秀的版本兼容性并且支持当下大部分的主流语言,在各种网络通信场景中被广泛使用。Lua作为一种效率极高的脚本语言,它可以方便得被嵌入到C程序中,并且支持热更新代码,在游戏行业不管是客户端还是服务器都很受欢迎。所以我想在Lua中使用Protobuf这个需求应该“合情合理”。但是,我在Protobuf中并未发现有Lua的官方版本实现。在一顿百度后发现有几个第三方的实现,不过感觉都不是特别满意。protoc-gen-lua:https://github.com/sean-lin/转载 2020-09-01 09:31:08 · 1854 阅读 · 1 评论 -
u3d目标与摄像机之间的遮挡物变为透明
摄像机和目标物体连接一个射线,然后射线碰到的物体的Transparent/Diffuse全部设为半透明using System.Collections;using System.Collections.Generic;using UnityEngine;public class XrayCameral : MonoBehaviour { public Transform tar; public List<Renderer> listLastRend = new L转载 2020-07-23 10:26:53 · 336 阅读 · 0 评论 -
Protobuf的优点
对于App网络传输协议,我们比较常见的、可选的,有三种,分别是json/xml/protobuf,老规矩,我们先分别来看看这三种格式的优缺点:优点:json优点就是较XML格式更加小巧,传输效率较xml提高了很多,可读性还不错。xml优点就是可读性强,解析方便。protobuf优点就是传输效率快(据说在数据量大的时候,传输效率比xml和json快10-20倍),序列化后体积相比Json和XML很小,支持跨平台多语言,消息格式升级和兼容性还不错,序列化反序列化速度很快。缺点:json缺点就是转载 2020-07-18 09:16:22 · 802 阅读 · 1 评论 -
Unity场景中脚本的Update和LateUpdate函数执行的先后问题
今天被一个同学问到关于【Unity场景中AB两物体挂载的脚本中Update和LateUpdate函数执行的先后问题】这个问题我平时还真没关注过。这个同学给我的答案是: 执行的先后顺序是按照AB两个物体渲染的顺序来执行的。 我对上面这个答案抱有疑问,因此对这个问题做了测试。测试环境 : 空场景只有AB两个Cube。测试脚本:测试过程比较简单,不再赘述,直接给结论: 执行的先后顺序与AB两个物体渲染的...原创 2020-07-16 16:08:35 · 715 阅读 · 0 评论 -
关于行为树
简单介绍构建游戏AI所需要的一些工具:状态机,层次状态机,行为树的区别以及联系Finite State Machines(有限状态机)1. 基本节点是状态。他包含了一系列运行在该状态的行为以及离开这个状态的条件。2. 这是图。状态可以任意跳转,实现简单,但是对于大的状态机很难维护.状态逻辑的重用性低.3. 每一个状态的逻辑会随着一些新状态的增加而越来越复杂。维持状态的数量和状态逻辑复杂性是一个很大的难点。需要合理的分割以及重用状态。4. 状态机状态的复用性很差,一旦一些因素变化导致这个环境发生转载 2020-07-14 19:09:06 · 546 阅读 · 0 评论 -
DOTween Sequence的使用
DoTween的Sequence的运行图:http://blog.csdn.net/jiejieup/article/details/41521577实用举例:Append(Tween tween):添加一个补间动画在这个Sequence后面-这个方法里面参数是一个Tween(补间动画)类型。AppendCallback(TweenCallBack callback):添加一个回调函数-里面参数就是调用方法的方法名字。AppendInterval(float interval).转载 2020-05-15 13:43:48 · 8506 阅读 · 0 评论 -
AudioClip 参数解析
Audio ClipAudioClip 面板有很多参数,设置起来容易出错,这里记录一下,做备忘。Force To Mono: 将多声道的声音合并成单声道,声音文件大小直接干掉好多,手机必选。合并声道之后,勾选Normalize可以使声音听起来更优一些。Load In Background: 在后台加载,这可以使得声音不阻塞主加载线程。它默认是关闭的,官方的说法是为了保证游戏运行时声...转载 2020-05-07 10:50:40 · 3041 阅读 · 0 评论 -
在lua中调用DLL
整整的花了一个下午的时候,才在lua中调用了动态链接库。比起其他脚本语言,lua的调用方式算是比较繁琐的,但是lua的编程思想非常的统一,即lua和C之间的传值都是通过栈进行的,目前为止我还没有深入的去了解这个“栈”,但是这并不妨碍去使用”栈“。当我们在一个空的工程中写下几个C/C++的函数,然后把属性类型设置为“动态链接库”以后,编译虽然成功了,DLL也产生了,但是我们得到的DLL是一个没有...转载 2020-05-06 13:30:18 · 2533 阅读 · 0 评论 -
使用cl编译器,将记事本写的c文件编译成dll和exe 步骤如下(记事本保存成.c)
原创 2020-05-06 10:12:39 · 494 阅读 · 0 评论 -
关于ugui界面显示隐藏的优化
在我们项目开始用ugui做UI开始就一直有在显示或者隐藏(用的是gameobject的setactive接口)UI的时候会产生gc以及一些计算,这个主要是unity的maskablegraphic在onenable的时候做了graphic的rebuild以及layout的rebuild,在ondisable的时候也做了一些计算。刚开始有用把整个UI界面移出屏幕的方法来避免显示隐藏的消耗,但是d...转载 2020-03-04 15:18:44 · 1016 阅读 · 0 评论 -
[Unity][摄像机]动态代码设置Camera的CullingMask遮罩
camera.cullingMask = ~(1 << x);// 渲染除去层x的所有层camera.cullingMask &= ~(1 << x); // 关闭层xcamera.cullingMask |= (1 << x);// 打开层xcamera.cullingMask = 1 << x + 1 ...转载 2020-03-03 14:02:48 · 2449 阅读 · 0 评论 -
Unity的包体压缩以及音效优化
1.音效加载的优化针对安卓平台,如果一开始就将音效给加载进去的话,那么上图中的内存占用率就会很大:导致最为明显的变化就是,场景加载的时候卡顿严重,影响游戏的体验优化方案:对于背景音乐(高频音乐)设置加载模式为streaming模式,使用缓存加载,播放完毕后会自动从缓存中卸载,从而提高内存占用率,如果你发现的的音效很占内存那么试试这个操作肯定不错。2.减少包体体积分析方法:查看...转载 2020-02-29 14:42:32 · 1319 阅读 · 0 评论 -
编辑器扩展之Inspector面板可视化调整
有些时候我们需要将数值暴露在面板中,有时候,只需要用public声明变量就可以了,或者序列化,但是这2种方法很笨,而且范围有限,不如用编辑器扩展得方法,下面演示编辑器inspector面板上得可视化用法首先,新建一个脚本,声明需要调值得变量:using System.Collections;using System.Collections.Generic;using Unity...转载 2020-01-17 13:28:30 · 783 阅读 · 0 评论 -
AudioSource中的PlayClipAtPoint()和PlayOneShot()
当同一个时间只需播放一个AudioClip时,用AudioSource组件在脚本中用Play(), Pause(), Stop()方法就能满足当需要在同一个时间播放N中AudioClip时,有两种方法PlayClipAtPoint()和PlayOneShot()1.共同点两个方法都是播放完AudioClip后自动关闭自动销毁2.不同点PlayClipAtPoint()...转载 2020-01-16 14:54:42 · 4389 阅读 · 1 评论 -
Lua调用c++ DLL 文件
尽管网上类似的例子不少,但是对于很多新手来说,有些问题并没有说的那么详细直奔主题在此,我会列出我参考的文章,有些东西就直接复制的环境:Visual C++ 2008 Express Edition + Lua 1.5 + SciTE(lua编辑器)下载 Visual C++ 2008 Express Edition + Lua ,下载后安装,省略N字。环境配置:1.打开Vi...转载 2020-01-10 17:31:24 · 814 阅读 · 0 评论 -
C4996 'sprintf': This function or variable may be unsafe.
解决方法:属性管理器-》C/C++-》预处理器-》 _CRT_SECURE_NO_DEPRECATE转载 2020-01-10 14:59:42 · 193 阅读 · 0 评论 -
lua 垃圾回收机制
一、检测lua内存泄漏:注:使用“collectgarbage("collect")”,局部变量v被回收,my_list没有被回收。注:局部变量v占用的内存被回收。注:将my_list置为nil,使用“collectgarbage("collect")”可以回收。总结一:如何监测Lua的编程产生内存泄露:1. 针对会产生泄露的函数,先调用collect...转载 2020-01-08 20:53:06 · 234 阅读 · 0 评论 -
lua collectgarbage
操作类型:stop停止垃圾收集。restart重启垃圾收集。collect执行一个完整的垃圾收集循环。count返回当前使用的内存,单位为千字节。step单步执行垃圾收集,第二个参数代表多少步。如果步长可以完成一次垃圾收集,则返回true。setstepmul第二参数/100代表单步的速度,默认值为200,代表是内存分配速度的两倍。setpause第二个参数/100代表...转载 2020-01-08 20:45:42 · 1663 阅读 · 0 评论 -
Unity UGUI基础之Image格式讲解
UGUI的Image等价于NGUI的Sprite组件,用于显示图片。一、Image组件:Source Image(图像源):纹理格式为Sprite(2D and UI)的图片资源(导入图片后选择Texture Type为Sprite(2D and UI))。Color(颜色):图片叠加的颜色。Material(材质):图片叠加的材质。Raycast Ta...原创 2020-01-08 10:52:50 · 5802 阅读 · 0 评论 -
Unity自定义Editor简明教程
Unity Custom EditorUnity中可以通过编写脚本实现自定义的Editor。好用Editor可以使开发事半功倍。 Asset Store上大部分第三方插件如NGUI、PlayMaker等都包含自定义Editor的部分。 自定义Editor主要包含两部分:Editor Window和Custom Editor。Editor Window顾名思义就是一个单独窗口的Edito...转载 2020-01-07 17:26:34 · 2238 阅读 · 0 评论 -
安装unity3d多个版本共存
用4.3打开两个低版本的unity工程,都报错.... 用低版本打开正常,希望Unity3D版本兼容性越来越好吧。参考:http://blog.csdn.net/anyuanlzh/article/details/15815589我们知道要运行unity pro需要一个许可文件:Unity_v4.x.ulf。在win7/win8系统,它放在目录"C:\ProgramData\Unity...转载 2020-01-07 15:45:05 · 2202 阅读 · 0 评论 -
GetComponentInParent 和 GetComponentsInParent的区别
GetComponentInParent 返回的是一个Canvas(最先找到的并且显示状态的对象,如果所有父节点都没有显示返回null)GetComponentInParent 返回的是一个Canvas[](可以通过传参找到包括隐藏状态的父节点)...原创 2020-01-07 09:51:11 · 3401 阅读 · 0 评论 -
EditorUtility.SetDirty 设置已改变
Description描述Marks target object as dirty.标记目标物体已改变。Unity internally uses the dirty flag to find out when assets have changed and need to be saved to disk.当资源已改变并需要保存到磁盘,Unity内部使用dirty标识来查找。...转载 2020-01-06 16:52:43 · 1713 阅读 · 0 评论 -
UGUI源码之绘制初探
在日常开发过程当中,类似于HUD或者是弹幕之类大量的体积小但是不断在移动的UI,在不断的重建的过程当中会产生大量的GC,导致游戏卡顿到不能玩。今天就研究一下Unity中UGUI的绘制方法以及规则:UGUI的源码地址(C#部分):下载地址利用底层API进行绘制首先我们要搞清楚,到底UGUI是如何对UI进行绘制的。我们首先从最稀疏平常的Image开始。Image源码...转载 2020-01-03 13:18:06 · 297 阅读 · 0 评论