![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Unity3D
文章平均质量分 63
iningwei
这个作者很懒,什么都没留下…
展开
-
物理轴实现总结
1原创 2019-11-13 20:50:46 · 186 阅读 · 0 评论 -
[Unity3D]不保存工程,导致的天坑
一定要保存!原创 2019-11-13 20:49:52 · 596 阅读 · 0 评论 -
[Unity3D]Unity3D编辑器内听不到声音
笔者情况是这样的:1,耳机没问题,音乐播放器声音没问题。2,音效文件没问题,使用耳机单独播放可以听到的。3,场景内有AudioListener组件、AudioSource组件都没有问题。4,音效是打成assetbundle的。程序内读取也没有问题,且正确赋值到AudioSource中的AudioClip。5,Game视图中Mute Audio也没有启用6,Editor->Pro...原创 2019-11-09 18:04:06 · 7991 阅读 · 9 评论 -
[Unity3d][Shader]HLSL Tools for Visual Studio
Unity3D中shader使用的是cg/hlsl语言。虽然shader可以用各种编辑工具编写。但是毕竟有很多关键词法,在不借用工具的条件下,硬编写难免增加了出错的几率。笔者使用的是VS2019,可以安装HLSL Tools for Visual Studio。功能不算强大,但勉强能用。拓展->管理扩展在联机选项中搜索shader,即可以下载安装。...原创 2019-09-05 11:48:46 · 2624 阅读 · 1 评论 -
[Unity3D]PlayerPrefs存储数据在windows环境中本地的存储位置
PlayerPrefs存储数据时,其在windows的存储路径是注册表:HKEY_CURRENT_USER ---->Software ---->CompanyName ---->ProjectName其中的CompanyName和ProjectName可以在Unity->Edit->Project Settings->Player中查看和设置。...原创 2019-07-08 09:41:46 · 2568 阅读 · 0 评论 -
Unity3D算反射向量
如图根据入射向量In和法线N。算出反射向量OutUnity3D已提供API:public static Vector3 Reflect(Vector3 inDirection, Vector3 inNormal);原创 2019-06-21 17:20:54 · 2406 阅读 · 0 评论 -
Unity3D:使用自带工具查看bundle信息
step1:cd到工具的所在目录../Editor/Data/Toolsstep2:使用WebExtract命令 WebExtract 完整bundle目录。成功的话,会生成一个同级的文件夹,内有两个文件。原创 2019-06-25 10:09:19 · 6140 阅读 · 0 评论 -
Unity3D中.asmdef文件(程序集定义文件 Assembly Definition File)详解
文章目录前言创建方法多层级ADF设置引用注意事项前言项目中使用了Spine3.7,因故要修改其源码,需要调用自己的一个单例类。发现莫名的报找不到的错误。最后才发现是.asmdef文件的锅。这个是Unity2017.3增加的功能。得益于此功能,开发者可以在一个文件夹中自定义程序集。定义明晰的依赖关系,可以确保脚本更改后,只会重新生成必需的程序集,减少编译时间。项目越大脚本越多,编译时间必然...原创 2019-06-06 16:45:05 · 15370 阅读 · 0 评论 -
Unity3D水波纹效果
工程是用的unity2018.3.0f2。水波纹效果很好。工程内有demo场景原创 2019-05-07 18:07:18 · 1404 阅读 · 0 评论 -
[Unity3D][Shader]PANCgShader--第一章 基础--02 RGB方块(vertex输出参数)
Shader内容Shader "My/RGBCube"{ SubShader { Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag struct vertexOutput{ ...原创 2019-09-05 22:53:39 · 247 阅读 · 0 评论 -
[Unity3D][Shader]PANCgShader--第一章 基础--03 vertex参数
vertex阶段数据是怎么来的?gameobject的Mesh Renderer组件会每一帧把mesh的所有数据信息发往GPU。这也就是所谓的draw call。每一次的draw call都会有性能消耗,因此每次向GPU发送一个较大容量的mesh数据比发送若干个小mesh数据更高效。mesh数据包括三角面列表,每个三角面由3个顶点定义,每个顶点又包含若干属性,这些属性通过vertex输入参数...原创 2019-09-05 23:35:56 · 492 阅读 · 0 评论 -
[Unity3D][Shader]PANCgShader--第一章 基础--04 统一坐标系
物体坐标系向世界坐标系转变前文提到过,vertex shader阶段用POSITION语义修饰的输入参数指的是物体的坐标,而且是mesh以自身所在的坐标系统为准的坐标。因此所有的物体最终需要统一转换到一个共同的坐标系统——世界坐标关于坐标系统转换更多知识参见Vertex Transformations从模型空间转换到世界空间需要一个4x4的矩阵,该矩阵称之为模型矩阵,该矩阵在Unity3D中...原创 2019-09-06 17:08:02 · 304 阅读 · 0 评论 -
[Unity3D][Shader]PANCgShader--第一章 基础--04(补充) Shader属性
文章目录属性类型详解attributesTexGenShader结构Democ#脚本调用shader属性为Shader提供属性(也可以认为是变量),可以把控制权交给非程序员。在Unity中,这些属性会显示在Unity的材质球的inspector面板上。属性类型数字和Slidername ("display name", Range (min, max)) = numbername ("d...原创 2019-09-06 20:23:20 · 259 阅读 · 0 评论 -
[Unity3D][Shader]PANCgShader--第二章 透明面--01部分切除
最简单的切除在SubShader中的Pass中使用指令Cull Off,Cull Back,Cull Front可以关闭切除,切除背面,切除正面。默认情况下Pass使用的是Cull Back。需要注意的是这些指令需要放在CGPROGRAM前声明。大部分GPU还支持语义VFACE,这更容易区分正面或者背面,但并不是所有的GPU都支持,详见:Shader semanticsdiscard指令...原创 2019-09-07 00:51:36 · 212 阅读 · 0 评论 -
[Unity3D][Shader]PANCgShader--第二章 透明面--02透明物体Alpha混合
混合(Blending)可编程图形管线中提到fragment shader为每一个片元(除非被discard)计算RGBA颜色(以fragment输出参数COLOR的形式)。原创 2019-09-08 16:32:24 · 286 阅读 · 0 评论 -
cg 逐片元操作
原创 2019-09-08 16:33:56 · 200 阅读 · 0 评论 -
[Unity3D][Shader]PANCgShader--第二章 透明面--03顺序无关的透明
对于标准的alpha混合等式,其混合的正确与否往往跟物体三角面的排列有关。特别对于一些畸异的物体,三角面并不是按照从后到前顺序排列的。混合等式中有一些并不依赖三角面的顺序,因此可以很好的规避这些问题。常见的为Additive Blending和Multiplicative Blending。Additive Blending前文已经探讨了混合语法Blend {code for SrcFact...原创 2019-09-08 23:20:11 · 198 阅读 · 0 评论 -
[Unity3D][Shader]PANCgShader--第二章 透明面--04透明物体轮廓增强
对于表面光滑的物体,其表面法线和视线接近90°的时候,一般可以认为该点位于轮廓处。增加轮廓位置的不透明度假定V是归一化后的视角方向,N为归一化后的表面法线方向。 当点乘V⋅N的结果越接近0,不透明度α的值越大。...原创 2019-09-09 15:19:04 · 197 阅读 · 0 评论 -
为Unity3D项目打造一个基于.NET的Excel导表工具
使用的库为:https://github.com/ExcelDataReader/ExcelDataReader该库跨平台,且不需要机器上安装office套件。该库的引入,建议使用NuGet。在程序包管理器控制台(工具->NuGet包管理器->程序包管理器控制台)输入:Install-Package ExcelDataReader即可引入该库。ps:也可以使用vs提供的可视化界...原创 2019-04-09 18:36:37 · 457 阅读 · 0 评论 -
事件分发未正确移除导致的看起来是变量值的问题
前言今天在做飞机大战游戏的时候,遇到一个莫名其妙的bug。部分代码如下:public class FactoryPage : Page{ PlaneUnitType unitType; public FactoryPage(GameObject obj, Window window, params object[] paras) : base(obj, window) ...原创 2019-04-03 17:49:24 · 228 阅读 · 0 评论 -
Unity3D中Time.timeScale
官方说明:https://docs.unity3d.com/ScriptReference/Time-timeScale.html结论1:Time.timeScale默认值为1,范围为[0,100]2:Time.timeScale影响Unity3D提供的Time类中的所有变量,除了realTimeSinceStartup3:Time.timeScale并不影响Update,LateUpda...原创 2019-04-12 15:59:57 · 552 阅读 · 0 评论 -
支持UGUI Sprite的圆形进度条shader
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'//参考文档:https://blog.csdn.net/wanghaodiablo/article/details/52103132Shader "My/SpriteCircleFill"{ Properties ...原创 2019-02-20 15:48:54 · 923 阅读 · 0 评论 -
[Unity3D] VisualStudio无法调试,报错:无法直接启动带有类库输出类型的项目
前提:UnityVS插件,已安装。点击启动:报错如下:解决方案:调试->附加Unity调试程序原创 2019-03-04 22:20:27 · 6078 阅读 · 4 评论 -
xLua集成lua-protobuf
参考资料xLua官方:https://github.com/Tencent/xLuaxLua集成第三方库官方教程:https://github.com/chexiongsheng/build_xlua_with_libslua-protobuf:https://github.com/starwing/lua-protobufwin环境要求cmake(需要配置好环境变量)C/C++编译环...原创 2019-01-24 19:23:56 · 10314 阅读 · 8 评论 -
Material does not have a _MainTex texture property It is required for SpriteRenderer.
网上直接复制网页内容,拷贝了份对UGUI SpriteRenderer组件进行圆形进度条的shader代码。报错:有时候还会有其它莫名报错…原因由于复制粘贴的shader,带来了一些莫名的隐藏字符,导致上述莫名其妙的报错。解决方案手动敲一遍。即可。...原创 2019-01-14 10:11:52 · 3810 阅读 · 0 评论 -
Unity3D中Inspector视图中显示属性Get/Set数值
https://github.com/LMNRY/SetProperty原创 2019-01-06 22:37:10 · 2113 阅读 · 0 评论 -
Unity3D应用程序无法正常启动(0xc0000022)
Unity3D2018安装后,点击快捷方式启动,报错如上。解决方法右键,以管理员身份运行即可。补充也可以设置快捷方式,让它以管理员的方式运行原创 2018-12-29 17:53:12 · 8248 阅读 · 1 评论 -
Win平台下 Unity3D editor模式下摄像头选择
情况说明笔记本,自带摄像头,开发原因需要使用外接摄像头,来扫描物体。PS:两个摄像头驱动都没有问题,都能够正常使用如何选择摄像头vuforia下可以在设置里面选择摄像头。但是普通通过untiy接口来调用摄像头的话,默认的话是当前能用的摄像头。如果有多个的话,一般都是笔记本自带的摄像头。如果要想使用外接摄像头的话,可以把自带摄像头禁用了。打开“设备管理器”右键选择禁用。这样unit...原创 2018-11-24 00:02:07 · 889 阅读 · 0 评论 -
点数组平滑插值
//helper array for curved paths, includes control points for waypoint array Vector3[] points;//taken and modified from//http://code.google.com/p/hotween/source/browse/trunk/Holoville/HOTween/Core原创 2017-06-08 23:32:28 · 1538 阅读 · 0 评论 -
There are inconsistent line endings in the script. Some are Mac OS X (UNIX) and some are Windows.
说明Unity3D项目,经常在编译后弹出类似这种的警告。缘由行尾符导致的。通过Unity3D编辑器创建的脚本文件是以"LF"结尾(Unix平台)MonoDevelop IDE创建的也是以“LF”结尾(Unix平台)而直接用Visual Studio创建的文件是以“CR LF”结尾(Windows平台)。由于换行编码不一致导致报以上警告。解决方法建议统一用CR LF格式的行尾符。...原创 2019-03-05 18:58:04 · 1447 阅读 · 0 评论 -
Unity3D Attribute总结
1:ToolTip字段前加上ToolTip,可以使得在Inspector窗口中,鼠标指向改字段,弹出对应提示。 [Tooltip("your name")] public int age = 10;原创 2019-03-06 16:39:27 · 226 阅读 · 0 评论 -
Unity2D SpriteRenderer上显示文字
前言Unity2D没有提供SpriteRenderer上显示文字的原生方案。经过笔者探索,有以下两种方式可供选择。1,Canvas节点挂载方式2,TextMesh方式Canvas节点挂载方式1,新建Canvas节点设置宽高为设计分辨率。特别注意:该节点的Layer我设置了UI_3D2,添加Text组件在需要显示文字的地方,新建一个空节点bg,作为Text组件的父物体,设置bg的...原创 2019-03-04 11:01:30 · 10536 阅读 · 0 评论 -
Unity3D编辑器扩展
[MenuItem("GameObject/XX/GetSpriteRenderSize",false,11)]以GameObject开头,可以实现在Hierarchy界面,右键节点,弹出选择项。注意第二个参数需要使用false,否则无法显示[MenuItem("Assets/XX/test2", false,11)]以Assets开头,可以实现在Project界面,右键空白区域或者任意节点...原创 2019-04-09 10:30:49 · 367 阅读 · 0 评论 -
Unity3D UGUI拖拽扩展
没有啥好讲的,直接看代码吧using UnityEngine;using System.Collections;using UnityEngine.UI;using UnityEngine.EventSystems;using System;public enum DragDirection{ Horizontal = 0, Vertical = 1,}publ...原创 2019-04-08 22:21:30 · 411 阅读 · 0 评论 -
Unity3D UGUI RectTransform总结
1:设置坐标.GetComponent<RectTransform>().anchoredPosition原创 2019-04-08 22:20:22 · 237 阅读 · 0 评论 -
Unity3D和Android原生代码互操作
AndroidJavaClass只能调用静态方法,获取静态属性AndroidJavaObject能调用非静态public方法和public属性 public byte[] GetBytes(string path) { AndroidJavaClass jc = new AndroidJavaClass("com.geek.AirPlaneBattle.Asset...原创 2019-04-08 19:31:31 · 495 阅读 · 0 评论 -
Unity3d使用JsonUtility序列化,反序列化数据
前言Unity3D 5.3之后的版本都提供了JsonUtility类,对Json数据的序列化和反序列化原生支持。使用心得需要序列化或者反序列化的类前必须加上[System.Serializable]这个Attribute从一个最简单的栗子开始[System.Serializable]public class Person{ public string Name; pu...原创 2019-03-29 11:00:46 · 4851 阅读 · 4 评论 -
再议MonoBehaviour声明周期
特别要注意。原创 2019-03-26 16:43:34 · 218 阅读 · 0 评论 -
[Unity3D][Shader]PANCgShader--第一章 基础--01 shader的基础结构
test原创 2019-03-18 18:41:21 · 133 阅读 · 0 评论 -
Unity3D TextMesh文字显示模糊
前言在文章Unity2D SpriteRenderer上显示文字中提到可以通过TextMesh的方式在SpriteRenderer上面显示文字。但是文字很模糊。解决方法找个字体库,不使用默认字体库。比如我这里的WRYH(微软雅黑)默认字体大小为16,可以改成64.同时修改TextMesh上的设置,把Character Size从1改成0.25、FontSize从0改成64...原创 2019-03-04 11:08:48 · 5298 阅读 · 0 评论