原创 C#中數組中關於%的應用
索引永遠不大於數組的取值範圍 index = (index + 1) % textures.Length; a=(a+1)%b; a<b則a=a+1 a=b則a=0
原创 有限狀態機
using System; using System.Collections; using System.Collections.Generic; using UnityEngine; /** 基於Eric Dybsand的遊戲編程G
原创 AI-視覺感知(聽覺感知)
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Enemy03 : MonoBehaviour {
原创 AI-有限狀態機(追擊,巡邏)
有限狀態機的基類,包含各種狀態 using System.Collections; using System.Collections.Generic; using UnityEngine; public enum Transiti
原创 Shader-高光反射(像素實現)
// Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject' // Upgrade NOTE: replaced '_World2Object' with '
原创 Shader-Blinn-Phong高光反射
Blinn-Phong光照模型 直射光 Specular = 直射光 * pow( max(cosθ,0),10) θ:是法線和x的夾角 x 是平行光和視野方向的平分線 // Upgrade NOTE: replaced '_Wo
原创 Shader-高光反射(頂點實現);控制高光範圍;控制高光顏色
Blinn光照模型 cosθ= dot(reflectDir, viewDir) 直射光 Specular = 直射光 * pow( max(cosθ,0),10) θ:是反射光方向和視野方向的夾角 10可以控制高光的範
原创 Shader-UnityCG.cginc中一些常用的函數
UnityCG.cginc中一些常用的函數 攝像機方向(視角方向) float3 WorldSpaceViewDir(float4 v) 根據模型空間中的頂點座標 ==》(世界空間)從這個點到攝像
原创 Shader-控制透明度
// Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject' // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*
原创 Shader-(頂點實現)環境光與自定義顏色
UNITY_LIGHTMODEL_AMBIENT 用來獲取環境光 // Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject' Shader "L
原创 Shader-映射紋理
// Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject' // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*
原创 Shader-漫反射(像素實現)半蘭伯特計算
半蘭伯特光照模型 Diffuse = 直射光顏色 *( cosθ *0.5 +0.5) 蘭伯特光照模型(漫反射) Diffuse = 直射光顏色 * max(0,cos夾角(光和法線的夾角) ) cosθ = 光方向· 法線方向 /
原创 Shader-片元函數調用頂點函數
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' Shader "LXC/03 StructShader" { Su
原创 Shader-凹凸映射和法線映射
法線貼圖爲藍色色調是切線空間,五顏六色的爲模型空間 實現凹凸映射的方法 高度紋理 法線紋理(高度映射,法線映射):高度映射:在貼圖的效果上提供高度貼圖,通過顏色的亮暗實現高淺;法線映射:使用法線的顏色實現 法線映射 // Upgrade
原创 Shader-漫反射與高光反射綜合(詳細版)
// Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject' // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*