- 博客(36)
- 收藏
- 关注
原创 Unity与IOS——Twitter分享SDK
这次记录一下Unity接入Twitter分享的SDK,做海外版本开发的应该都会接触到。由于项目中使用的是XUPorter管理IOS的SDK,所以进行扩展即可。关于UnityIOS的SDK管理方案XUPorter可以看下这个大佬的文章:https://blog.youkuaiyun.com/u013457933/article/details/879909981.下载SDK:https://github.com/twitter-archive/twitter-kit-ios这是Github上twitterki
2021-01-19 15:07:17
1482
原创 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
661
原创 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
1175
原创 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
1647
原创 读取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
922
原创 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
1158
原创 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
722
原创 UnityShader应用——卡通渲染
1.描边外描边之前记过。内描边的实现:ILM的a通道控制内描边的范围。也就是黑色区域对应uv上的地方进行需要内描边。在最后与光照模型算出的颜色相乘就行。2.光照模型diffuse部分:ILM的g通道控制漫反射阴影的阈值。shadowRange = g值 * 顶点颜色(平时没有的数据) 共同决定受光范围。也就是说黑色的区域,是不想受到阴影的。diffuse = max( 0 ...
2020-03-12 14:47:00
930
原创 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
12935
1
原创 Unity——第三人称跟随摄像机的实现
实现一个第三人称跟随的摄像机,如下那就开始吧!!1.思路摄像机具有上下和左右的旋转,也就是沿X轴和Y轴的旋转,不存在Z轴的旋转。我们设置如下结构:FollowCamera控制Y轴旋转,pivot控制X轴旋转,MainCamera不进行旋转。然后是摄像机跟随,我们在LateUpdate中进行平滑跟随即可。2.写代码这里我贴部分关键代码,文章最后附上全部代码。控制摄像机旋转部分...
2019-08-25 13:35:11
6140
原创 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
1278
原创 UnityShader应用——双摄像机分别渲染彩色主角和黑白环境
实现黑白画面中只有主角是彩色的画面。1.创建两个Camera分别渲染环境和角色增加一个LayerMask,命名为Color层。然后设置两个Camera的属性。EnvCam的渲染层取消勾选Color层和UI层。RoleCam的ClearFlags设置成只清理深度缓存, 渲染层只选UI和Color层。2.EnvCam添加黑白灰度后处理先写一个Shader: (获得摄像机画面C...
2019-03-23 14:22:20
2414
1
原创 UnityShader应用——使用深度值实现Fog雾效
1.开启深度GetComponent&lt;Camera&gt;().depthTextureMode = DepthTextureMode.Depth; //开启摄像机深度mode2._CameraDepthTexture存储深度信息的Tex,需要在Shader中声明;sampler2D _CameraDepthTexture;3.ZBuffer (只有ShaderTag是...
2019-01-21 19:45:56
3841
转载 UnityShader——渲染队列,ZTest,ZWrite,Early-Z
转载: https://blog.youkuaiyun.com/puppet_master/article/details/53900568简介在渲染阶段,引擎所做的工作是把所有场景中的对象按照一定的策略(顺序)进行渲染。最早的是画家算法,顾名思义,就是像画家画画一样,先画后面的物体,如果前面还有物体,那么就用前面的物体把物体覆盖掉,不过这种方式由于排序是针对物体来排序的,而物体之间也可能有重叠,所以效...
2018-12-28 17:43:55
446
原创 UnityShader应用——外发光实现
学习了一下实现物体外发光的Shader。实现外发光的Pass //pass2 生成模型外部的光晕 Pass { Name "OutLight" Tags {"LightMode" = "Always"} Cull Front //不正面剔除会出错 Blend SrcAlpha One CGPROGRAM #pragma vertex ve..
2018-12-25 17:15:45
11119
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
785
原创 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
3691
原创 Lua——嵌套表排序的小坑
最近实习接到一个对道具进行排序的任务,对lua了解不深,刚开始犯了点傻;Lua自带table排序我们可以自定义排序函数,但只支持下标为整型的数组table,所以遇到嵌套table,键值对这种用另一种方法解决;数组排(只支持下标为整型的table)require &amp;quot;TableUtil&amp;quot;;myTable = { [1] = &amp;quot;abc&amp;quot;, [2] =
2018-12-10 14:53:53
1042
1
原创 UnityShader应用——边缘内发光
在学完了Phong光照模型之后,边缘光就可以在它基础上添加几行代码完成;Shader:Shader "Unlit/RimLight"{ Properties{ _SpecularGlass("SpecularGlassStrength", Range(0,64)) = 32 _ObjColor("ObjColor", color) = (1,1,1,1) _RimColor(..
2018-11-16 16:24:37
1929
原创 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
1390
原创 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
234
原创 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
10616
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
336
原创 C#——二叉树的实现(深度及广度遍历)
二叉树的实现二叉树的结点包含data,left,right,通过一些结点之间的关系就可以构造二叉树;二叉树结点类 class Node&amp;lt;T&amp;gt; { T data; Node&amp;lt;T&amp;gt; left; Node&amp;lt;T&amp;gt; right; public
2018-09-14 16:19:06
1917
原创 C#——实现泛型顺序队列和链式队列
顺序队列,使用List为存储器 /// 顺序队列 class MyQueue&lt;T&gt; { List&lt;T&gt; list; public MyQueue() { list = new List&lt;T&gt;(); } //入队 public...
2018-09-13 20:05:10
1249
原创 C#——实现泛型顺序栈和链栈
使用C#进行了泛型栈的实现,内部以List&amp;lt;&amp;gt;作为储存器; class CStack&amp;lt;T&amp;gt; { int p_Index; List&amp;lt;T&amp;gt; list; //构造方法 public CStack() { list
2018-09-11 15:31:35
495
原创 UnityShader应用——水波效果
最近学了顶点片元Shader基本语法之后,决定拿一个Shader来分析一下,初学Shader,在此记录一下!这个Shader效果都是在frag里进行;(不是说好了frag里计算量大要避免吗!!) sampler2D _MainTex; float _WaveStrength; float _WaveFactor; float _TimeScale; fix...
2018-09-04 17:22:24
4226
原创 C#——匿名方法和Lambda表达式
有一次看见别人的代码里=&amp;amp;gt;以及花里胡哨的省略写法,就去整理了一下匿名方法和Lambda表达式的写法,菜鸡一个,多多指教!匿名函数的一些写法:1.无返回值类型Action&amp;amp;lt;string&amp;amp;gt; tellName = delegate(string name){ Debug.log(&amp;quot;My Name is &amp;quot;+nam
2018-09-04 16:01:38
449
原创 算法——常见排序算法
1.冒泡排序 /// 冒泡排序 static void BubbleSort(ref int[] array) { int temp; for (int j = array.Length-1; j &amp;gt;=1; j--) //每执行完一次外层,就算出当前最大值,然后总排序数-1 {...
2018-09-02 13:54:39
353
原创 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
766
原创 UnityShader应用——序列图动画
1.序列图动画ShaderShader &amp;amp;amp;quot;Study/UVAnim&amp;amp;amp;quot;{Properties{ _MainTex (&amp;amp;amp;quot;Texture&amp;amp;amp;quot;, 2D) = &amp;amp;amp;quot;white&amp;amp;amp;quot; {}
2018-08-28 15:15:20
991
原创 UnityShader——使用ReplacementShader
1.摄像机脚本 用摄像机的SetReplacementShader(Shader,Tag)进行shader替换; 当摄像机看到的Shader的Tags和当前要替换的ReplaceShader的指定Tags一致,就会进行替换;2.使用深度的Shader代码Shader &quot;Study/DepthColorShader&quot;{SubShader{ Tags{&quot;...
2018-08-28 14:49:43
969
原创 C#——实现泛型List
C#用数组实现List&lt;&gt; class Program { static void Main(string[] args) { MyList&lt;int&gt; myList = new MyList&lt;int&gt;(); myList.Add(20); m...
2018-06-12 18:01:54
716
原创 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
602
原创 Unity中更换游戏对象Shader以及Shader属性
using UnityEngine;public class changeColor : MonoBehaviour {public GameObject obj;private Renderer renderer;void Start () {renderer = obj.GetComponent&lt;Renderer&gt;();}public void onClick()...
2018-06-07 18:35:50
4145
原创 Unity中协程Coroutine的使用
协程方法Coroutine的使用调用协程方法时,主线程会继续向下执行,同时执行协程方法;IEnumerator TestCoroutine() //返回值为枚举器{print(&amp;quot;123&amp;quot;);yield return new WaitForSeconds(2f); //协程会暂停2秒print(&amp;quot;1258&amp;quot;);yield return nul
2018-06-07 18:31:08
476
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人