unity

shader常用

百般思念 提交于 2020-03-26 05:56:41
1 模型空间转裁剪空间 UnityObjectToClipPos(v.vertex) 2 模型空间转世界空间 mul( unity_ObjectToWorld, v.vertex ) 3 雾三件套 UNITY_FOG_COORDS(3) UNITY_TRANSFER_FOG(o,o.pos); UNITY_APPLY_FOG(i.fogCoord, c);    4 环境光 UNITY_LIGHTMODE_AMBIENT 5 灯光世界方向 _WorldSpaceLightPos0.xyz 6 摄像机世界坐标 _WorldSpaceCameraPos.xyz 7 方向光颜色 _LightColor0.rgb 8 lightdir = normalize( _WorldSpaceLightPos0.xyz )  入射光方向 -lightdir  viewdir = normalize( _WorldSpaceCameraPos.xyz - worldPos )  反射方向 r = reflect( _lightdir, worldnormal )  半角向量 h = normalize(lightdir + viewdir)   光照模型: blinnphone: c = ambient * diffuse + diffuse * saturate( dot( worldnormal

[unity3d]unity跟.net进行http通信

回眸只為那壹抹淺笑 提交于 2020-03-25 12:57:44
3 月,跳不动了?>>> 谈谈今天的学习感受,今天收获最大的就是解决了u3d向.net提交表单,然后.net服务器将接受过来的表单数据保存到sqlserver数据库中。unity3d中wwwform默认的是post提交的。 http 提交数据原理 http 协议通过 url来获取和提交数据 。提交数据的方式 有两种,一种是get方法,一种是post方法。get一般用于告诉服务器把满足参数的数据发送给回来。 例如:get 的html代码如下: [html] view plain copy < form action = "search.php" method = "GET" > < username: < inputtype inputtype ="text" name ="user" /> < br > < password: < inputtype inputtype ="password " name ="pwd" /> < br > < input type ="submit" value ="login" /> </ form > post一般是将数据发送给服务器,服务器将这些数据进行处理,比如说存储到数据库。 例如:post的html 代码如下: [html] view plain copy < form action = "login.php" method =

用好Lua+Unity,让万金6.0平台搭建性能飞起来——Lua与C#交互篇

谁说我不能喝 提交于 2020-03-24 12:22:13
前言万金6.0平台搭建论坛:haozbbs.com Q1446595067 在看了uwa之前发布的《Unity项目常见Lua解决方案性能比较》,决定动手写一篇关于lua+unity方案的性能优化文。 整合lua是目前最强大的unity热更新方案,毕竟这是唯一可以支持ios热更新的办法。然而作为一个重度ulua用户,我们踩过了很多的坑才将ulua上升到一个可以在项目中大规模使用的状态。事实上即使到现在lua+unity的方案仍不能轻易的说可以肆意使用,要用好,你需要知道很多。 因此,这篇文章是从一堆简单的优化建议里头,逐步挖掘出背后的原因。只有理解了原因,才能很清楚自己做的优化,到底是为了什么,有多大的效果。 从最早的lua纯反射调用c#,以及云风团队尝试的纯c#实现的lua虚拟机,一直发展到现在的各种luajit+c#静态lua导出方案,lua+unity才算达到了性能上实用的级别。 但即使这样,实际使用中我们会发现,比起cocos2dx时代luajit的发扬光大,现在lua+unity的性能依然存在着相当的瓶颈。仅从《性能比较》的test1就可以看到,iphone4s下二十万次position赋值就已经需要3000ms,如果是coc这样类型的游戏,不处理其他逻辑,一帧仅仅上千次位置赋值(比如数百的单位、特效和血条)就需要15ms,这显然有些偏高。 是什么导致lua

Unity Shader之TRANSFORM_TEX方法

谁说我不能喝 提交于 2020-03-23 20:36:04
3 月,跳不动了?>>> TRANSFORM_TEX方法比较简单,就是将模型顶点的uv和Tiling、Offset两个变量进行运算,计算出实际显示用的定点uv。 该方法可以在UnityCG.cginc文件中找到,内容也很简单: // Transforms 2D UV by scale/bias property #define TRANSFORM_TEX(tex,name) (tex.xy * name##_ST.xy + name##_ST.zw) 配合使用时的代码: o.uv = TRANSFORM_TEX (v.texcoord, _MainTex); 其中 v是appdata_base类型,v.texcoord就是模型顶点的uv数据。 _MainTex是使用的图片。 name##_ST实际上就是_MainTex_ST。 name##_ST.xy就是Tiling的xy值。 name##_ST.zw就是Offset的xy值。 学海无涯,继续努力。 ———————————————— 版权声明:本文为CSDN博主「HelloMingo」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/u010133610/article/details/78789940 来源: oschina 链接:

Unity 捕获IronPython脚本错误

北战南征 提交于 2020-03-23 13:10:01
版权声明:本文为博主原创文章。未经博主同意不得转载。 https://blog.csdn.net/akof1314/article/details/36048747 捕获的方法摘自《 IronPython in Action 》一书,代码例如以下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145

Unity打砖块小游戏制作过程

北城以北 提交于 2020-03-21 22:15:49
3 月,跳不动了?>>> 操作步骤 新建一个plane,修改位置坐标为(0,0,0)导入资源包, 新建一个空对象,命名为Wall,用于存放后面脚本生产的小方块 新建一个脚本,重命名为Brick,用于生成由Cube组成的墙。把脚本附给Wall,脚本复制对象选择资源包中的小方块的预制件 。脚本内容如下: using System.Collections; using System.Collections.Generic; using UnityEngine; public class Brick : MonoBehaviour { public GameObject brick; private int columnNum=8;//列数 private int rowNum = 6;//行数 // Start is called before the first frame update void Start() { for(int i = 0; i < rowNum; i++) { for(int j = 0; j < columnNum; j++) { Instantiate(brick, new Vector3(j-5,i),Quaternion.identity); } } } // Update is called once per frame void Update() {

Unity模拟小球滚动游戏

女生的网名这么多〃 提交于 2020-03-21 18:38:12
3 月,跳不动了?>>> 成品展示 操作步骤 新建一个plane当作地面,重命名为Ground,位置坐标修改为(0,0,0)。再新建一个空对象,在里面新建一个Cube,再进行三次复制。重命名为Wall,当作墙,修改坐标为(0,0,0).通过修改四个Cube的position和scale属性,使其围在Ground四周。 新建一个Cube,重命名为PickUp,附上材质,并修改位置坐标为(0,1,0),修改rotation属性使其倾斜。为PickUp添加一个Rigidbodt组件,并勾选Use Gravity和Is Kinematic选项,使其固定在原位置。 新建一个脚本文件,命名为RotatePickUp,作为小方块旋转脚本 。脚本内容为: using System.Collections; using System.Collections.Generic; using UnityEngine; public class RotatePickUp : MonoBehaviour { // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { this.transform.Rotate(new Vector3(15

C# IoC学习笔记

那年仲夏 提交于 2020-03-21 18:35:49
一、引言 面向接口(抽象)编程,是为了降低程序的耦合度,符合依赖倒置原则。因此典型的三层架构UI、BLL、DAL基于接口设计后,会拓展成UI、IBLL、BLL、IDAL、DAL。在上一篇《 C# IoC学习笔记 》中我们可以了解到,控制反转(IoC)使对象的创建交给了第三方IoC容器如Unity。利用Unity的IoC功能,可以对基于接口设计的三层架构做进一步的升级,搭建一个更容易实现的可配置可扩展的三层架构;利用Unity的AOP功能,使框架更加的简洁,因为它抽出了框架的公共逻辑部分。 二、项目建立 2.1、项目建立 依次新建项目UI(Client)、IBLL、BLL、IDAL、DAL、Model、Common。 2.2项目说明 三、项目之间的引用关系 3.1、对着项目名称右键->添加->引用->项目,添加各个项目的引用。 3.2、引用说明 四、项目需安装的NuGet包 五、注意事项 对Unity容器的IoC调用进行封装,Container应封装成 单例模式 以提高效率,此处使用MemoryCache。 5.1、在Common项目引用System.Runtime.Caching.dll,并在Helper文件夹下新建一个缓存帮助类:MemoryCacheHelper.cs。 /// <summary> /// 内存缓存帮助类,支持绝对过期时间、滑动过期时间、文件依赖三种缓存方式。

Unity Oculus Quest Input

杀马特。学长 韩版系。学妹 提交于 2020-03-19 11:32:20
别的不说了,请搭梯子,去吧 https://translate.google.com.hk/translate?hl=zh-CN&sl=en&u=https://developer.oculus.com/documentation/unity/unity-ovrinput/&prev=search 来源: https://www.cnblogs.com/DGJS/p/12522256.html