原创 Unity shader 角色消失 溶解 隱身 效果

先上兩張效果圖 實現原理 一句話總結: 空間中有一個隱形的面,判斷模型上和麪的相對位置,根據需求隱藏上方或者下方的點。 原理就這麼簡單,具體怎麼實現呢,首先確定數學幾何中平面的性質:原點到到面上任意一點構成的向量a,再這個面的

原创 消息模式/事件監聽 lua

消息模式有三個主要對象,分別是: 消息監聽者:監聽消息 消息中心:存儲、刪除消息 消息發送者:發送廣播 看下面的圖,大概對每個部分的職能能夠清楚的瞭解: 下面是主要代碼: Msg.lua 相當於消息中心,對所有消息進行處理

原创 Unity Mesh實現圖片切割(三)- mesh繪製

Unity Mesh實現圖片切割(三)- mesh繪製 Unity Mesh實現圖片切割 github博客鏈接 建議瞭解mesh原理,此篇博客不對mesh詳解,值針對此功能做簡單介紹以及思路引導。 一、 創建mesh 要想自己創建

原创 Unity Mesh實現圖片切割(二)- 頂點計算

Unity Mesh實現圖片切割(二)- 頂點計算 Unity Mesh實現圖片切割 github博客鏈接 在開始計算座標點之前線建議聲明Line類,提供一些複用函數,爲計算提方便。 一、 計算畫的線和圖形線的交點 求交點座標直觀

原创 unity 空氣擾動,熱空氣 shader效果

正常效果: 高速低擾動效果: 低速高擾動效果: 代碼: Shader "Learning/rekongqi" { Properties { _NoiseTex ("NoiseTextrue", 2D) = "whit

原创 Unity用Mesh畫多邊形、圓形

首先貼上效果圖 上面兩個圖就是使用Unity的Mesh畫出的正五邊形和正八變形。 無論是研究過Mesh還是隻是有所聽說,應該都聽過網格,上面兩個圖形就是利用來網格的特性來實現的。 首先講一下Mesh原理 無論渲染什麼圖形,就需

原创 unity 百葉窗效果 shader 兩行代碼搞定

兩行shader代碼搞定百葉窗效果!!! 先看下效果: 直接上shader代碼: Shader "Learning/baiyechuang" { Properties { _TopTex ("TopTexture", 2

原创 Unity RenderTexture實現 刮彩票、橡皮擦、擦除效果(3D物體)

一、實現效果: 類似刮刮樂的擦除效果 支持多筆擦除(一次擦不乾淨) 二、所用技術點: RenderTexture Shader 三、實現原理: 一個相機單獨渲染筆刷軌跡到RenderTexture上,在通過RenderT

原创 隨機取n個不相同的元素(Lua實現)

一些邏輯邏輯需求要在一個長度爲m數組中取出n個不同的元素(m > n),一般第一想法是隨機出一個下標,然後刪除對應的元素,以此來取出不同的元素。本篇文章介紹一個不需要刪除操作的方法。代碼如下: -- 假設長度m爲10,隨機取出個數

原创 Unity Excel導表工具,導成Lua,支持嵌套結構

爲什麼要使用導表工具? 幾乎所有遊戲公司數據由策劃來配置,程序負責邏輯,策劃看不懂代碼,excel是可以相對具象的讓策劃瞭解一個模塊的數據配置,起到了策劃和程序之間的橋樑作用,也可以方便策劃對數據的把控。 根據各個公司各個項目的不

原创 Unity流光shader,無需圖片

本片博客實現流光shader的方式無需黑色帶有白道的圖片,單純通過計算實現,可以調節光帶寬度、亮度、方向、角度,靈活性比較大。 下面圖是實現效果 下面是代碼的實現: Shader "Unlit/liuguang" { Prop

原创 遊戲AI,行爲樹,Lua框架

行爲樹(縮寫BT),故名思議是一個樹狀結構,它是用樹的方式來描述一個角色的行爲。書本上的一些概念就不進行說明了。(本文僅代表個人理解的一個簡易版的行爲樹框架,適用於輕量級的AI邏輯,處理不當的地方還請指出) 下面直接介紹下行爲樹框

原创 Lua實現C#的Get/Set屬性訪問器

雖然Lua沒有C#一樣的屬性,但是它的強大的元表和元方法能夠實現很多功能,本篇博客就介紹如何用lua的元表和原方法實現C#中的get、set屬性訪問其功能。 class.lua class.lua是實現lua的類,我的之前博客有些

原创 Lua 實現C#中的類

直接上代碼: class.lua local mt = {} function class(clsName, base) local cls = {} base = base or mt setmetatable(cls,

原创 Lua實現消息模式

消息模式有三個主要對象,分別是: 消息監聽者:監聽消息 消息中心:存儲、刪除消息 消息發送者:發送廣播 看下面的圖,大概對每個部分的職能能夠清楚的瞭解: 下面是主要代碼: Msg.lua 相當於消息中心,對所有消息進行處理