自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Jeff的博客

知乎: ”撩撩头发可好“

  • 博客(36)
  • 收藏
  • 关注

原创 Unity与IOS——Twitter分享SDK

这次记录一下Unity接入Twitter分享的SDK,做海外版本开发的应该都会接触到。由于项目中使用的是XUPorter管理IOS的SDK,所以进行扩展即可。关于UnityIOS的SDK管理方案XUPorter可以看下这个大佬的文章:https://blog.csdn.net/u013457933/article/details/879909981.下载SDK:https://github.com/twitter-archive/twitter-kit-ios这是Github上twitterki

2021-01-19 15:07:17 1286

原创 Unity与安卓——Obb自动改名

上次记录了一下GooglePlay上架需要分包的事项。如下链接:GooglePlay上架分包但是在每次打完包,都需要手动改Obb的名字,这里写了一个自动改成符合要求的命名规则。具体就是使用OnPostProcessBuild方法。using System.Collections;using System.Collections.Generic;using UnityEngine;#if UNITY_EDITORusing UnityEditor;using UnityEditor.Call

2020-09-18 18:47:06 559

原创 Unity与IOS安卓——应用评价

IOS评价在IOS10.3之后,用户可以在应用内进行评价。每台设备、每个APP、每年只能弹出3次应用内评价框。Unity为我们提供了这个方法的接口:Device.RequestStoreReview();安卓评价安卓采用跳转到应用商店进行评价的方式。Application.OpenURL("market://details?id=" + productName);比如productName是com.google.android.apps.maps,为地图应用页面。...

2020-09-07 15:19:43 877

原创 Unity与安卓——GooglePlay分包

GooglePlay上架分包GooglePlay上架的应用如果超过100M,Google就会要求开发者使用APK+OBB的进行分包处理。还好Unity这边已经为我们提供了分包的方法。在PlayerSettings——>PublishingSettings里勾选Split Application Binary2.打完包之后,会生成两个文件。3.更改Obb文件名为:main.bundleVersionCode.bundleID.obbbundleVersionCode为Unity设置中的

2020-09-07 15:00:57 1423

原创 读取CSV数据

可以使用读取字符串数组的方法,每一行string为数组的一个元素。然后以逗号切分string,获取内容。比如下面这个表格的CSV数据:001Google谷歌www.Google.com002Apple苹果www.Apple.com003Alibaba阿里www.alibabagroup.com以文本打开就是这样的:下面这段代码输出csv表格里所有的网址public static string[] OpenCSV(string filepath){

2020-07-18 16:19:25 695

原创 HashSet与List的Contains方法

HashSet不能用索引访问,不能存储重复数据。 HashSet<string> hs = new HashSet<string>(); hs.Add("hahah"); Console.Write(hs[0]); //这里会报错 List<string> ls = new List<string>(); ls.Add("hhhh"); Co

2020-07-18 15:48:37 997

原创 Lua——改变require函数做到非侵入式更改

遇到这么个需求,做新版本但不可以改动以前版本的代码。这个时候就需要用非侵入式写法。记录一下从一个大佬那里学到的一种非侵入式写法。下面这是旧版本代码。GamePanel = class("GamePanel");local M = GamePanel;function M:OpenPanel() print("openpanel");endreturn M;下面是更改require函数代码。local changeTable = {};changeTable[GamePanel] =

2020-07-16 21:26:16 561

原创 UnityShader应用——卡通渲染

1.描边外描边之前记过。内描边的实现:ILM的a通道控制内描边的范围。也就是黑色区域对应uv上的地方进行需要内描边。在最后与光照模型算出的颜色相乘就行。2.光照模型diffuse部分:ILM的g通道控制漫反射阴影的阈值。shadowRange = g值 * 顶点颜色(平时没有的数据) 共同决定受光范围。也就是说黑色的区域,是不想受到阴影的。diffuse = max( 0 ...

2020-03-12 14:47:00 838

原创 Lua——小数四舍五入

保留整数math.floor(x + 0.5)即可math.floor(x)会直接舍弃小数点后的部分。如: 4.4 – 4.9 45.6 – 6.1 6保留几位小数进行四舍五入:保留2位 num为100, 3位为1000,…math.floor(x * num+ 0.5) / num0.06499 要 变成 0.065 (保留3位小数...

2019-11-27 19:29:49 12110 1

原创 Unity——第三人称跟随摄像机的实现

实现一个第三人称跟随的摄像机,如下那就开始吧!!1.思路摄像机具有上下和左右的旋转,也就是沿X轴和Y轴的旋转,不存在Z轴的旋转。我们设置如下结构:FollowCamera控制Y轴旋转,pivot控制X轴旋转,MainCamera不进行旋转。然后是摄像机跟随,我们在LateUpdate中进行平滑跟随即可。2.写代码这里我贴部分关键代码,文章最后附上全部代码。控制摄像机旋转部分...

2019-08-25 13:35:11 5843

原创 Unity与Android——AS打aar包供Unity调用

AndroidStudio部分1.新建Android工程,与Unity项目包名一致(com.xx.xxx)2.在Unity安装路径Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes.jar,找到Classes.jar并拷贝到安卓工程libs文件夹下。添加依赖:在bulid.gradle...

2019-07-20 12:19:18 1202

原创 UnityShader应用——双摄像机分别渲染彩色主角和黑白环境

实现黑白画面中只有主角是彩色的画面。1.创建两个Camera分别渲染环境和角色增加一个LayerMask,命名为Color层。然后设置两个Camera的属性。EnvCam的渲染层取消勾选Color层和UI层。RoleCam的ClearFlags设置成只清理深度缓存, 渲染层只选UI和Color层。2.EnvCam添加黑白灰度后处理先写一个Shader: (获得摄像机画面C...

2019-03-23 14:22:20 2205 1

原创 UnityShader应用——使用深度值实现Fog雾效

1.开启深度GetComponent&amp;lt;Camera&amp;gt;().depthTextureMode = DepthTextureMode.Depth; //开启摄像机深度mode2._CameraDepthTexture存储深度信息的Tex,需要在Shader中声明;sampler2D _CameraDepthTexture;3.ZBuffer (只有ShaderTag是...

2019-01-21 19:45:56 3682

转载 UnityShader——渲染队列,ZTest,ZWrite,Early-Z

转载: https://blog.csdn.net/puppet_master/article/details/53900568简介在渲染阶段,引擎所做的工作是把所有场景中的对象按照一定的策略(顺序)进行渲染。最早的是画家算法,顾名思义,就是像画家画画一样,先画后面的物体,如果前面还有物体,那么就用前面的物体把物体覆盖掉,不过这种方式由于排序是针对物体来排序的,而物体之间也可能有重叠,所以效...

2018-12-28 17:43:55 383

原创 UnityShader应用——外发光实现

学习了一下实现物体外发光的Shader。实现外发光的Pass //pass2 生成模型外部的光晕 Pass { Name &quot;OutLight&quot; Tags {&quot;LightMode&quot; = &quot;Always&quot;} Cull Front //不正面剔除会出错 Blend SrcAlpha One CGPROGRAM #pragma vertex ve..

2018-12-25 17:15:45 10628 9

原创 Lua——函数中:和 . 的区别

.定义方法function Man.SayName(self) print("My name is "..self.name)endm.SayName(m)需要手动传入self参数,才可以获取self的字段;:定义方法function Man:SayName() print("My name is "..self.name)endm:SayName()使用:定...

2018-12-12 15:40:37 725

原创 Lua——配置IDEA+EmmyLua插件开发环境

下载安装IntelliJ IDEAhttps://www.jetbrains.com/idea/?fromMenu安装EmmyLua插件1.打开Idea,进入File-Settings-Plugins,搜索EmmyLua并安装。安装完之后,重启IDEA。创建项目开始愉快的编码~其他设置1.由于我之前使用VS比较多,可以把快捷键设置为VS风格。File-Setting-Key...

2018-12-12 12:38:14 3594

原创 Lua——嵌套表排序的小坑

最近实习接到一个对道具进行排序的任务,对lua了解不深,刚开始犯了点傻;Lua自带table排序我们可以自定义排序函数,但只支持下标为整型的数组table,所以遇到嵌套table,键值对这种用另一种方法解决;数组排(只支持下标为整型的table)require &amp;amp;quot;TableUtil&amp;amp;quot;;myTable = { [1] = &amp;amp;quot;abc&amp;amp;quot;, [2] =

2018-12-10 14:53:53 950 2

原创 UnityShader应用——边缘内发光

在学完了Phong光照模型之后,边缘光就可以在它基础上添加几行代码完成;Shader:Shader &quot;Unlit/RimLight&quot;{ Properties{ _SpecularGlass(&quot;SpecularGlassStrength&quot;, Range(0,64)) = 32 _ObjColor(&quot;ObjColor&quot;, color) = (1,1,1,1) _RimColor(..

2018-11-16 16:24:37 1831

原创 UnityShader——Phong光照模型 = Diffuse + Specular + Ambient

一.图形学颜色叠加乘法(各分量相乘) light(1, 1, 1) * stuff(0.2f, 0.3f, 0.5f) = (0.2f, 0.3f, 0.5f)二.经验模型PhongPhong = Ambient + Diffuse +Specular1.Diffuse漫反射Diffuse = dot ( -lightDir , N) * lightColor这里点乘: d...

2018-11-15 17:58:29 1286

原创 Lua——认识一下Lua的面向对象和继承

Lua语言核心在Table,通过将一个table作为另一个table的metatable元表,实现继承;通过一个例子理解Lua的面向对象和继承;---------------Person Base Class Person={}function Person:new(o,age,name) --Person的构造函数 o=o or {} set...

2018-10-30 22:28:44 199

原创 Unity——炫酷的音频可视化

public void GetSpectrumData(float[] samples, int channel, FFTWindow window);这是AudioSoucre类型的方法,获取频谱数据;samples:采样率,就是说采集多长一段的频谱,必须为2^n,但是最小64,最大8192。channel:信道,0或1window:采样方式(Enum),有下列几种Rect...

2018-10-09 16:53:44 9971 15

原创 C#——数据结构(二)栈、队列、二叉树

1.Stack(先进后出)LIFO只能在栈顶进行元素的插入和删除; 内部有一个ArrayList作为储存器,p_Index永远指向栈顶; ——Push入栈 ——Pop出栈 ——Top(peek) return list[p_Index]; 复杂度:当内部list容量够用时,不需要增大容量的情况下,入栈Push为O(1),反之为O(n); 出栈始终为O(1);...

2018-09-15 14:16:32 278

原创 C#——二叉树的实现(深度及广度遍历)

二叉树的实现二叉树的结点包含data,left,right,通过一些结点之间的关系就可以构造二叉树;二叉树结点类 class Node&amp;amp;lt;T&amp;amp;gt; { T data; Node&amp;amp;lt;T&amp;amp;gt; left; Node&amp;amp;lt;T&amp;amp;gt; right; public

2018-09-14 16:19:06 1814

原创 C#——实现泛型顺序队列和链式队列

顺序队列,使用List为存储器 /// 顺序队列 class MyQueue&amp;lt;T&amp;gt; { List&amp;lt;T&amp;gt; list; public MyQueue() { list = new List&amp;lt;T&amp;gt;(); } //入队 public...

2018-09-13 20:05:10 1199

原创 C#——实现泛型顺序栈和链栈

使用C#进行了泛型栈的实现,内部以List&amp;amp;lt;&amp;amp;gt;作为储存器; class CStack&amp;amp;lt;T&amp;amp;gt; { int p_Index; List&amp;amp;lt;T&amp;amp;gt; list; //构造方法 public CStack() { list

2018-09-11 15:31:35 437

原创 UnityShader应用——水波效果

最近学了顶点片元Shader基本语法之后,决定拿一个Shader来分析一下,初学Shader,在此记录一下!这个Shader效果都是在frag里进行;(不是说好了frag里计算量大要避免吗!!) sampler2D _MainTex; float _WaveStrength; float _WaveFactor; float _TimeScale; fix...

2018-09-04 17:22:24 4087

原创 C#——匿名方法和Lambda表达式

有一次看见别人的代码里=&amp;amp;amp;gt;以及花里胡哨的省略写法,就去整理了一下匿名方法和Lambda表达式的写法,菜鸡一个,多多指教!匿名函数的一些写法:1.无返回值类型Action&amp;amp;amp;lt;string&amp;amp;amp;gt; tellName = delegate(string name){ Debug.log(&amp;amp;quot;My Name is &amp;amp;quot;+nam

2018-09-04 16:01:38 389

原创 算法——常见排序算法

1.冒泡排序 /// 冒泡排序 static void BubbleSort(ref int[] array) { int temp; for (int j = array.Length-1; j &amp;amp;gt;=1; j--) //每执行完一次外层,就算出当前最大值,然后总排序数-1 {...

2018-09-02 13:54:39 309

原创 C#——数据结构(一)数组、集合

1.Array数组数组可以直接通过下标访问。 array[i]常规操作:分配存储空间。 如:声明一个数组 int[] array = new int[5]; 访问数组中的元素数据。 通过下标来获取。 int[ ] array = new int [5] {1,2,3,4,5}; int[ , ] secDimeArray = new int[2,3]; int[ ] ...

2018-09-01 19:42:37 709

原创 UnityShader应用——序列图动画

1.序列图动画ShaderShader &amp;amp;amp;amp;quot;Study/UVAnim&amp;amp;amp;amp;quot;{Properties{ _MainTex (&amp;amp;amp;amp;quot;Texture&amp;amp;amp;amp;quot;, 2D) = &amp;amp;amp;amp;quot;white&amp;amp;amp;amp;quot; {}

2018-08-28 15:15:20 919

原创 UnityShader——使用ReplacementShader

1.摄像机脚本 用摄像机的SetReplacementShader(Shader,Tag)进行shader替换; 当摄像机看到的Shader的Tags和当前要替换的ReplaceShader的指定Tags一致,就会进行替换;2.使用深度的Shader代码Shader &amp;quot;Study/DepthColorShader&amp;quot;{SubShader{ Tags{&amp;quot;...

2018-08-28 14:49:43 870

原创 C#——实现泛型List

C#用数组实现List&amp;lt;&amp;gt; class Program { static void Main(string[] args) { MyList&amp;lt;int&amp;gt; myList = new MyList&amp;lt;int&amp;gt;(); myList.Add(20); m...

2018-06-12 18:01:54 653

原创 Socket在Unity中的使用

Server端的创建(VS中建立控制台)1.创建一个Socket命名空间: System.Net.SocketsSocket tcpServer=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp); //三个参数,寻址方案,套接字类型,协议类型2.绑定ip和端口 //IPAd...

2018-06-07 18:57:16 533

原创 Unity中更换游戏对象Shader以及Shader属性

using UnityEngine;public class changeColor : MonoBehaviour {public GameObject obj;private Renderer renderer;void Start () {renderer = obj.GetComponent&amp;lt;Renderer&amp;gt;();}public void onClick()...

2018-06-07 18:35:50 4046

原创 Unity中协程Coroutine的使用

协程方法Coroutine的使用调用协程方法时,主线程会继续向下执行,同时执行协程方法;IEnumerator TestCoroutine() //返回值为枚举器{print(&amp;amp;quot;123&amp;amp;quot;);yield return new WaitForSeconds(2f); //协程会暂停2秒print(&amp;amp;quot;1258&amp;amp;quot;);yield return nul

2018-06-07 18:31:08 406

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除