unity

UnityShader从青铜到王者_1

喜欢而已 提交于 2019-11-26 14:28:31
hi同学们好我是BJ。 今天我突然想写篇Shader教学贴而且是那种前无古人的那种。 青铜操作开始 新建一个Unity空工程 Unity版本Version2018.4.1f1 (为什么用这个版本?我是一个从Unity3时代过来的人,Shader在Unity各个版本不停的发展,我经常看到某个同学拿着某80年代的插件(开个玩笑意思就是比较老的Unity插件)往Unity2017,Unity2018导入结果发现妈耶 粉红色 粉红色 粉红色 ,然后就傻眼。在此特地强调这个版本,防止同学拿着现在的代码往Unity3 Unity4 Unity5 上用出现 粉红色 ) 右键 保存一下 来源: https://blog.csdn.net/u011921203/article/details/98884835

Unity3D 发送广播与消息

送分小仙女□ 提交于 2019-11-26 14:26:48
一个对象可以绑定多个脚本,实现这些脚本之间的交互就可以使用广播机制。 游戏对象之间发送的广播与消息分为三种:第一种向子对象发送,将发送至该对象的同辈对象或者子孙对象中;第二种为给自己发送,发送至自身对象;第三种为向父对象发送,发送至该对象的同辈或者父辈对象中。 发送消息的方法都有两个参数:第一个参数为接受消息的方法名称,第二个参数为一个 object 对象,可将任意类型作为参数附加在消息中。 接收消息的方法具有一个参数,为 object 对象。 在实际开发中用的最多的就是 SendMessage() 方法。通过游戏对象可直接调用该方法,返回消息后,该对象身上绑定的所有脚本都可以接到这个消息。 //向子类发送消息 gameObject.BroadcastMessage("ReceiveBroadcastMessage", "A0-BroadcastMessage()"); //给自己发送消息 gameObject.SendMessage("ReceiveSendMessage", "A0-SendMessage()"); //向父类发送消息 gameObject.SendMessageUpwards("ReceiveSendMessageUpwards", "A0-ReceiveSendMessageUpwards()"); //接收父类发送的消息 void

基于unity3d+vs2017的hololens2 emulator 初级使用教程

点点圈 提交于 2019-11-26 14:14:27
参考微软hololens教程链接: https://docs.microsoft.com/zh-cn/windows/mixed-reality/holograms-101e 参考github 项目 https://github.com/Microsoft/HolographicAcademy/tree/Holograms-101 下载unity2017.2+vs2017(选择安装resharp) Unity 1. 参照 微软 在unity中创建新的project,设置各个模块的位置 注意:在Assets目录下添加 github项目 中的Holograms文件夹 2. File->Build&Setting中设置 Player Setting 2.1 勾选XR setting 的Virtual Reality Supported 2.2 选Other Setting 的 Configuration-> Scripting Backened改为.NET 最后点击Build按钮.新建一个名为App的文件夹并选中,确定后需要等待一段时间。到此为止,unity生成了一个模型组件以及对应Visual Studio解决方案。 Visual Studio 1. 用vs2017打开刚才生成的sln文件 以下的步骤及其容易出错,如果没有运行得出想要的模型,请反复尝试!!! 设置release,x64

github项目分享

半腔热情 提交于 2019-11-26 13:19:31
unity 项目合集: https://michidk.github.io/Unity-Script-Collection/ ugui特效: https://github.com/mob-sakai/UIEffect?tdsourcetag=s_pctim_aiomsg ecs破碎特效: https://github.com/keijiro/Firefly?tdsourcetag=s_pctim_aiomsg 微差异图片打包: https://github.com/Elringus/SpriteDicing?tdsourcetag=s_pctim_aiomsg 2D人物平台控制: https://github.com/cjddmut/Unity-2D-Platformer-Controller 来源: https://www.cnblogs.com/sanyejun/p/11321865.html

Unity Data-Oriented的学习资源

瘦欲@ 提交于 2019-11-26 12:21:35
以下是一些面向数据的资源,可以是Unity或我们已经验证过的外部资源。我们将包括外部资源,我们认为这些外部资源能够很好地理解面向数据的设计并包含高质量的信息(在贡献时)。 注意 :由于Unity Data-Oriented Tech Stack的性质不断变化,链接可能会过时。将检查页面以确保它包含最佳资源,但如果您发现过时或断开链接的内容,请确保在 论坛中 告知我们或作为存储库中的 问题 。 教程 Mike Geig的实体组件系统和C#作业系统简介 (五部分视频教程系列。) 活动资​​源 Unity at Unite LA 2018 主题演讲:Joachim Ante和MartinKümmel的MEGACITY演示[视频] ECS:Joachim Ante的欢迎和概述[视频] ECS:由Mike Acton扩展的LOD和剔除系统[视频] ECS:Andreas Fredriksson和Lee Hammerton的基于样条的AI代理[视频] ECS:深入探索由Alexandre Mutel创作的Burst Compiler [视频] ECS:韦恩·约翰逊在ECS世界中的图形驱动音频[视频] ECS:马丁·库默尔(MartinKümmel)在预算上建立一个充满活力的呼吸世界[视频] ECS:使用Daniel Brauer的实体调试器[视频] ECS:FabriceLété和Simon

解读GitHub EntityComponentSystemSamples

白昼怎懂夜的黑 提交于 2019-11-26 12:16:23
出自Unity官方的ECS项目示例,该项目的第一次Commit是在2018年3月20号,距离现在一年半的时间,这期间ECS本身的生态在快速发展,稳定性也是逐步提升,期待在2020年的Unity版本中作为正式组件发布。好了,下面进入正题~ 对该项目的README做简单翻译和总结。 欢迎 欢迎来到DOTS样品资源! 在这里,您可以找到今天开始使用这些新系统构建所需的资源。 我们还提供了一个论坛,您可以在其中找到更多信息并与这些新系统分享您的经验。 点击此处访问论坛 什么是面向Unity数据的技术堆栈? 我们一直在研究一种新的 高性能多线程系统 ,这将使 游戏能够充分利用当今可用的多核处理器而不会出现繁重的编程问题 。面向数据的技术栈包括以下主要系统: 该 实体组件系统 提供了一种默认编写高性能的代码。 在 C#作业系统 提供了一种方法来运行多个CPU内核并行游戏代码 该 突发编译 一个新的数学感知,后台编译器调整的产生高度优化的机器代码。 通过这些系统,Unity可以为您正在编译的平台的特定功能生成高度优化的代码。 Entity Component System 实体组件系统提供了一种更好的游戏设计方法,使您可以专注于您正在解决的实际问题:组成游戏的数据和行为。它利用C#Job System和Burst Compiler使您能够充分利用当今的多核处理器

Unity基础之:UnityAPI的学习

自闭症网瘾萝莉.ら 提交于 2019-11-26 12:11:25
版权声明: 本文原创发布于博客园"优梦创客"的博客空间(网址: http://www.cnblogs.com/raymondking123/ )以及微信公众号"优梦创客" 您可以自由转载,但必须加入完整的版权声明! Quaternion 表示旋转 矩阵 //9个浮点数,数据占用量大,且除了表示旋转外,还表示缩放((0,0),(1,1),(2,2)点表示x,y,z的三个缩放) //显卡使用 欧拉角 rotation,绕x,y,z轴的旋转量 //给定朝向的表示不惟一,通过限定yaw,roll在+-180度,pitch在+-90度可以解决该问题 (pitch,绕右向量旋转,点头;yaw,绕上向量旋转,摇头;roll,绕前方向,转头;常用于飞行模拟) //万向锁 如:一个平行于x轴的向量绕y轴旋转-90度,会平行于z轴,此时所有绕z轴的旋转都不再起作用 轴角对 //用旋转轴,旋转角度的对偶表示旋转 //旋转角无唯一 单位四元数:[1,0] 1是标量,0是零向量 四元数的模,4个数的平方和开根 identity :单位四元数 eulerAngles //返回四元数对应的欧拉角,是一个属性 W,x,y,z w表示转化后的旋转值,x,y,z表示转化后的旋转轴 LookRotation //给定一个方向向量,返回表示该方向旋转的四元数 public static Quaternion

unity判断bound是否在摄像机内

前提是你 提交于 2019-11-26 11:13:23
目前实现了两种方法: 1、将bound的点从世界坐标系转到摄像机视口坐标系vecA,其中摄像机所见视口坐标的范围是vecB(0-1,0-1,0-farClipPlane),比较vecA的xyz是否在vecB中即可 2、将bound的点从世界坐标系转到摄像机投影坐标系vecA,投影坐标系是vector4(x,y,z,w),投影坐标的xyz/w可得到NDC坐标系,摄像机可见的NDC坐标系范围是(-1~1,-1~1,-1~1),那么摄像机可见的投影坐标系范围是vecB(-w~w,-w~w,-w~w),比较vecA的xyz是否在vecB的中即可 两种方法大同小异,都是转换到某个容易得到摄像机范围的坐标系,然后进行比较 第二个方法比较优,比第一个方法少了几次坐标系转换 代码: 第一种方法: 1 using System.Collections; 2 using System.Collections.Generic; 3 using UnityEngine; 4 5 public static class TestExpand 6 { 7 /// <summary> 8 /// 检查一个世界坐标系下的点是否在摄像机可见范围内 9 /// </summary> 10 /// <param name="camera"></param> 11 /// <param name="worldPos"><

Unity3D读取PDF文件内容

时间秒杀一切 提交于 2019-11-26 03:53:35
最近在研究Unity3D中读取PDF的内容,预想了三种方案,一是用Java来实现,二是调用C#的iTextSharp库或者PDFBox库来实现,三是下载PDF Renderer插件(土豪可以买这个插件,支持的系统也比较全面),java不是很精通,我就研究了一下C#调用iTextSharp库来实现,但是遗憾的是不支持UWP系统。 再写代码之前呢,得在Assets下的Plugins文件夹中导入itextsharp.dll、Spire.Pdf.dll、Spire.License.dll、System.Drawing.dll库,才能好使。 直接上传代码: //读取PDF文字内容 private void ReadPDF_Click() { string path = Application.streamingAssetsPath + "/SimplePDF.pdf"; msg.text = OnCreated(path); } private string OnCreated(string filepath) { try { string pdffilename = filepath; PdfReader pdfReader = new PdfReader(pdffilename); int numberOfPages = pdfReader.NumberOfPages; string