原创 C++ td::nothrow

定義: std::nothrow被用來作爲new操作符的一個參數。 平時使用new申請內存失敗的話會直接拋出bad_alloc異常。 如果使用new(std::nothrow)申請內存失敗的話,此時不會拋出一個異常而是返回一個空指針。 這

原创 C++ 四種類型轉換操作符

在c++中進行類型轉換只需要在變量前加上變量類型,並且轉換是雙向的。 例如: int i = 0; double d = 1.9; int i1 = (int) d; double d1 = (double) i; 這種類型轉換方式只

原创 Unity ECS框架

下面是我在初步學習Unity ECS編程模式,對我比較有幫助的幾篇文章。先把資源放在這裏防止忘記,也希望能幫助有需要的人。 等對ECS又了自己比較清晰的認知以後,再過來更新。 https://www.jianshu.com/p/e3fa4

原创 圖形學應用_着色器實例—筆刷效果

筆刷效果的實現 最終效果: 片元着色器代碼: Shader "Hidden/Brush" { Properties { _MainTex("MainTex",2D)="white"{} _CenterX("CenterX"

原创 圖形學

渲染管線流程: 頂點着色器--》光柵化--》片段着色器--》alpha測試--》模板測試--》深度測試--》Blend--》Gbuffer-->frontBuffer--》frameBuffer--》顯示器 頂點着色器: 計算頂點的顏色

原创 圖形學應用_着色器實例—加載效果

加載效果的實現 最終效果: 左側是表面着色器實現,右側是頂點和片元着色器實現。 表面着色器代碼: Shader "Custom/Loading_SurfaceShader" { Properties{ _MainTex("Alb

原创 Unity3D ShaderGraph插件

ShaderGraph插件安裝 我在安裝Unity插件ShaderGraph的時候遇到了一個問題: 然後後面查到了解決方法,現在在這裏分享出來。  首先點擊"Window"->"Package Manager" 下載如上標識的兩個空

原创 貝塞爾曲線

在這裏看到了很清晰的解釋。這裏留下來自己學習和分享。 貝塞爾曲線基本原理: https://blog.csdn.net/cdnight/article/details/48468653 貝塞爾曲線一階/二階推導公式: https://bl

原创 Unity3d UI系統

序言: 關於UnityUGUI系統還是挺複雜,這裏記錄一下平常遇到的問題。 正文: UI世界座標系和屏幕座標系的統一 接觸過U3D的同學都知道當我們在項目中新建UI對象時,都會在創建在名爲Canvas的對象下,如下圖 這幾天在工作中遇到

原创 XLua熱更新

文件加載 例子:打印一個字符串 首先需要實例化一個LuaEnv,你可以講LuaEnv理解爲虛擬機,比較耗費內存,保持全局一個就可以。  LuaEnv luaenv = new LuaEnv(); 方式一:luaenv.DoString("

原创 Unity繪製Mesh

Unity中代碼繪製Mesh Fraphic Unity所有可視UI組建的基類。 如果你想要在Unity創建一個UI組建,都會自動繼承該類。 例子: using UnityEngine; using UnityEngine.UI; [

原创 Unity協程

啓動協程         StartCoroutine(IEnumerator ie); 關閉協程        關閉當前腳本中開啓的協程。StopAllCoroutines();        關閉指定的協程。 StopCoroutin

原创 C#Lock機制

  定義:lock 確保當一個線程位於代碼的臨界區時,另一個線程不進入臨界區。如果其他線程試圖進入鎖定的代碼,則它將一直等待(即被阻止),直到該對象被釋放。 Monitor 方法是靜態的,不需要生成Monitor 類的實例就可以直接調用它

原创 Unity3d遊戲開發之LOD(多層次細節)優化

定義: LOD技術即Levels of Detail的簡稱,意爲多細節層次。LOD技術指根據物體模型的節點在顯示環境中所處的位置和重要度,決定物體渲染的資源分配,降低非重要物體的面數和細節度,從而獲得高效率的渲染運算。 模型準備: 如果已

原创 學會總結,最有效的學習方式

C#中Class和Struct的區別 class(類)是面向對象編程的基本概念,是一種自定義數據結構類型,通常包含字段、屬性、方法、屬性、構造函數、索引器、操作符等。在.NET中,所有的類都最終繼承自System.Object類,因此是一