- 博客(81)
- 收藏
- 关注
翻译 有限状态机
using System;using System.Collections;using System.Collections.Generic;using UnityEngine;/**基于Eric Dybsand的游戏编程Gems 1第3.1章的有限状态机系统Roberto Cezar Bianchini著,2010年7月 How to use: 1. 为有限状态系统的转换和状...
2018-12-07 14:56:28 228
原创 AI-视觉感知(听觉感知)
using System.Collections;using System.Collections.Generic;using UnityEngine;public class Enemy03 : MonoBehaviour { //视野距离 public float viewDistance = 5; //视野范围 public float viewA...
2018-11-20 23:31:52 1703
原创 AI-有限状态机(追击,巡逻)
有限状态机的基类,包含各种状态 using System.Collections;using System.Collections.Generic;using UnityEngine;public enum Transition{ NullTransition=0, SeePlayer, LostPlayer}public enum StateI...
2018-11-20 17:06:33 646
原创 Shader-控制透明度
// Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject'// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'Shader "LXC/15 Rock Alpha"{ Properties{ _Co...
2018-11-19 15:46:10 1953
原创 Shader-凹凸映射和法线映射
法线贴图为蓝色色调是切线空间,五颜六色的为模型空间 实现凹凸映射的方法高度纹理 法线纹理(高度映射,法线映射):高度映射:在贴图的效果上提供高度贴图,通过颜色的亮暗实现高浅;法线映射:使用法线的颜色实现法线映射// Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject'// Upgrade NOTE: rep...
2018-11-19 12:15:50 702
原创 AI-简单FSM
using System.Collections;using System.Collections.Generic;using UnityEngine;public class SimpleFSM : MonoBehaviour { public enum State { Idle, Patro, //巡逻 Chase, /...
2018-11-18 22:24:31 183
原创 Shader-纹理添加偏移和缩放
// Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject'// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'Shader "LXC/12 Tiling Offset"{ Properties{ ...
2018-11-17 15:48:17 1377
原创 Shader-映射纹理
// Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject'// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'Shader "LXC/11 Single Texture"{ Properties{ ...
2018-11-17 15:19:28 309
原创 Shader-漫反射与高光反射综合(详细版)
// Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject'// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'Shader "LXC/10 Diffuse Specular"{ Properties{...
2018-11-15 23:27:51 538
原创 Shader-UnityCG.cginc中一些常用的函数
UnityCG.cginc中一些常用的函数 摄像机方向(视角方向) float3 WorldSpaceViewDir(float4 v) 根据模型空间中的顶点坐标 ==》(世界空间)从这个点到摄像机的观察方向 float3 UnityWorldSpaceViewDir(float4 v) 世界空间中的顶点坐标==》世界空间从这个点到摄像机的观察...
2018-11-15 21:59:07 1101
原创 Shader-Blinn-Phong高光反射
Blinn-Phong光照模型 直射光 Specular = 直射光 * pow( max(cosθ,0),10) θ:是法线和x的夹角 x 是平行光和视野方向的平分线 // Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject'// Upgrade NOTE: replaced '_World2Object...
2018-11-15 21:10:09 306
原创 Shader-高光反射(像素实现)
// Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject'// Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject'Shader "LXC/08 Specular Fragment"{ Properties{ _Diffuse...
2018-11-15 21:00:43 222
原创 Shader-高光反射(顶点实现);控制高光范围;控制高光颜色
Blinn光照模型 cosθ= dot(reflectDir, viewDir) 直射光 Specular = 直射光 * pow( max(cosθ,0),10) θ:是反射光方向和视野方向的夹角 10可以控制高光的范围参数越小范围越大 // Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject...
2018-11-15 20:08:27 1053
原创 Shader-漫反射(像素实现)半兰伯特计算
半兰伯特光照模型 Diffuse = 直射光颜色 *( cosθ *0.5 +0.5) 兰伯特光照模型(漫反射) Diffuse = 直射光颜色 * max(0,cos夹角(光和法线的夹角) ) cosθ = 光方向· 法线方向 // Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject'Shader ...
2018-11-15 19:25:44 339
原创 Shader-漫反射(像素实现)
系统内置漫反射Shader "Diffuse" // Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject'Shader "LXC/05 Diffuse Fragment"{ Properties{ _Diffuse("Diffuse Color",Color) = (1,1,1,1) } SubSh...
2018-11-15 19:00:34 288
原创 Shader-(顶点实现)环境光与自定义颜色
UNITY_LIGHTMODEL_AMBIENT 用来获取环境光 // Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject'Shader "LXC/04pp Diffuse"{ Properties{ _Diffuse("Diffuse Color",Color) = (1,1,1,1) }...
2018-11-15 18:47:26 623
原创 Shader-(顶点实现)漫反射相关;自定义颜色
漫反射 Diffuse = 直射光颜色 * max(0,cos夹角(光和法线的夹角) ) 点积cosθ = 光方向· 法线方向 //max表示小于0时取最大值0 只有定义了正确的LightMode才能得到一些Unity的内置光照变量 Tags{ "LightMode"="ForwardBase" } 包含unity的内置的文件,才可以使用unity内置的一些变量 ...
2018-11-15 18:25:22 516
原创 Shader-片元函数调用顶点函数
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'Shader "LXC/03 StructShader"{ SubShader { Pass{ CGPROGRAM #pragma vertex vert #pragma fragment frag ...
2018-11-14 21:58:06 314
原创 Shader-顶点函数与片元函数
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'Shader "LXC/02 CanRun"{ SubShader { Pass{ CGPROGRAM //顶点函数 这里只是声明了顶点函数的函数名 顶点坐标从模型空间到剪裁空间的转换#pragma verte...
2018-11-12 22:55:02 699
原创 Shader-基本结构与属性定义
Shader "LXC/ 01 myshader"//这里指定的shader名字,不要求和文件名一致,/前的为路径{ //属性 Properties { //属性的定义 属性名("Inspector显示名",类型)=(默认值); _Color ("Color",Color)=(1,1,1,1) //(R,G,B,A) float4 _Vector("Vector4"...
2018-11-12 21:47:56 247
原创 AI-群组行为
不使用群组行为using System.Collections;using System.Collections.Generic;using UnityEngine;public class Crow : MonoBehaviour{ public float animRandom = 2f; public float speed = 1; public ...
2018-11-12 11:35:21 740
原创 灯光与渲染
Edit=>Project Setting=>Player Setting=>Other Setting=>Color Space线性空间最好选择Linear 烘焙错误UVs(不是真实的模型效果):在模型select=>Model菜单下lightmipUVs 阴影烘焙不出来:1.Edit=>Project Setting=>Quality=>Sh...
2018-11-11 19:39:38 793
原创 udpclient
客户端using System;using System.Collections.Generic;using System.Linq;using System.Net;using System.Net.Sockets;using System.Text;using System.Threading.Tasks;namespace udpclient客户端{ clas...
2018-11-05 12:35:44 235
原创 tcpclient与tcplistener
客户端using System;using System.Collections.Generic;using System.Linq;using System.Net.Sockets;using System.Text;using System.Threading.Tasks;namespace tcpclient{ class Program { ...
2018-11-05 12:08:37 362
原创 UDP聊天室
客户端using System;using System.Collections.Generic;using System.Linq;using System.Net;using System.Net.Sockets;using System.Text;using System.Threading.Tasks;namespace UDP协议_客户端{ class P...
2018-11-04 21:34:34 159
原创 Vuforia学习
Android TV Vuforia不支持DefaultTrackableEventHandler脚本下动画跟随物体生成public GameObject aiXiPrefab; //找到了需要识别的物体 protected virtual void OnTrackingFound() { GameObject aiXi = GameObject.In...
2018-11-02 22:54:20 424
原创 Lua中#的解读
table t 的长度被定义成一个整数下标 n 。 它满足 t[n] 不是 nil 而 t[n+1] 为 nil; 此外,如果 t[1] 为 nil ,n 就可能是零。 对于常规的数组,里面从 1 到 n 放着一些非空的值的时候, 它的长度就精确的为 n,即最后一个值的下标。 如果数组有一个“空洞” (就是说,nil 值被夹在非空值之间), 那么 #t 可能是指向任何一个是 nil 值的前一个位置...
2018-11-01 12:08:44 2722
原创 Unity聊天室Tcp协议
客户端unity脚本using System.Collections;using System.Collections.Generic;using System.Net;using System.Net.Sockets;using System.Text;using System.Threading;using UnityEngine;using UnityEngine.UI;...
2018-10-26 22:03:38 203
原创 Socket-tcp协议客户端与服务器端互联
客户端using System;using System.Collections.Generic;using System.Linq;using System.Net;using System.Net.Sockets;using System.Text;using System.Threading.Tasks;/// <summary>/// 客户端/// &...
2018-10-26 17:41:56 177
原创 Xlua热更新笔记
成员方法:通过对象调用静态方法:通过类调用static全局的,静态方法只能放在静态方法中,普通方法生命周期小于静态方法(全局的)如协程不能在静态方法中调用***************************环境配置与导入********************导入Xlua文件到Unity工程 配置宏定义:添加 HOTFIX_ENABLE 到 'Edit > Project...
2018-10-23 20:46:09 245
原创 UnityAPI—判断用户是否点击UI界面
UnityEngine.EventSystems.EventSystem.current.IsPointerOverGameObject();
2018-10-17 21:23:40 681
原创 C#中数组中关于%的应用
索引永远不大于数组的取值范围index = (index + 1) % textures.Length;a=(a+1)%b;a<b则a=a+1a=b则a=0
2018-10-16 13:06:22 370
原创 冒泡排序
bool swapped = true;do{ swapped = false; for(int i =0;i<sortArray.Length -1;i++){ if(sortArray[i]>sortArray[i+1]){ int temp= sortArray[i]; sortArray[i]=sortArray[i+1]; sortArray[i...
2018-10-08 22:43:54 94
原创 控制摄像机的跟随
using System.Collections;using System.Collections.Generic;using UnityEngine;public class FollowTarget : MonoBehaviour { private Transform player; private Vector3 offset; private floa...
2018-09-30 09:42:57 411
原创 AssetBundle
添加一个AssetBundle按钮用来打包using UnityEditor;using System.IO;public class CreateAssetBundles { [MenuItem("Assets/Build AssetBundles")] static void BuildAllAssetBundles() { string ...
2018-09-30 09:29:20 142
转载 Lua 迭代器
迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址在Lua中迭代器是一种支持指针类型的结构,它可以遍历集合的每一个元素。泛型 for 迭代器泛型 for 在自己内部保存迭代函数,实际上它保存三个值:迭代函数、状态常量、控制变量。泛型 for 迭代器提供了集合的 key/value 对,语法格式如下:for...
2018-09-21 22:36:05 89
转载 Lua 数组
数组,就是相同数据类型的元素按一定顺序排列的集合,可以是一维数组和多维数组。Lua 数组的索引键值可以使用整数表示,数组的大小不是固定的。一维数组一维数组是最简单的数组,其逻辑结构是线性表。一维数组可以用for循环出数组中的元素,如下实例:array = {"Lua", "Tutorial"}for i= 0, 2 do print(array[i])end以上代...
2018-09-20 22:15:53 359
转载 Lua 字符串
字符串或串(String)是由数字、字母、下划线组成的一串字符。Lua 语言中字符串可以使用以下三种方式来表示:单引号间的一串字符。 双引号间的一串字符。 [[和]]间的一串字符。以上三种方式的字符串实例如下:string1 = "Lua"print("\"字符串 1 是\"",string1)string2 = 'runoob.com'print("字符串 2 是",s...
2018-09-20 22:14:02 357
转载 区别Lua模式匹配中 %a+ 与 .-
匹配单词与匹配字符> print(string.gsub("hello!zzy","%a+","tina"))tina!tina 2> print(string.gsub("hello!zzy",".-","tina"))tinahtinaetinaltinaltinaotina!tinaztinaztinaytina 10
2018-09-20 21:32:28 1097
转载 Lua 运算符
运算符是一个特殊的符号,用于告诉解释器执行特定的数学或逻辑运算。Lua提供了以下几种运算符类型:算术运算符 关系运算符 逻辑运算符 其他运算符算术运算符下表列出了 Lua 语言中的常用算术运算符,设定 A 的值为10,B 的值为 20:操作符 描述 实例 + 加法 A + B 输出结果 30 - 减法 A - B 输出结果 -10 ...
2018-09-20 20:40:18 227
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人