找回密碼
 注冊帳號

掃一掃,訪問微社區

涼鞋同學 Unity 游戲框架搭建 2019 (一) 簡介與第一個示例文件名的生成

0
回復
312
查看
打印 上一主題 下一主題
[ 復制鏈接 ]
排名
2324
昨日變化

85

主題

535

帖子

2491

積分

Rank: 9Rank: 9Rank: 9

UID
148923
好友
69
蠻牛幣
2693
威望
0
注冊時間
2016-5-17
在線時間
849 小時
最后登錄
2020-4-28

專欄作家

QQ

馬上注冊,結交更多好友,享用更多功能,讓你輕松玩轉社區。

您需要 登錄 才可以下載或查看,沒有帳號?注冊帳號

x
為什么要打造自己的庫?
在筆者工作的這幾年發現,接觸過的同事中,不管是渲染大神還是引擎大神、或者是框架大神,無一不例外地都有自己的庫。
有一個自己的庫,有什么好處呢?其實好處是非常多的。
從編程角度上:
  • 可以提高自己的編碼效率。
從學習角度上:
  • 可以積累下來自己所學過的知識。
隨著時間演變,那么庫會壯大起來,如果找到一個好的定位,并且進行發布,那么這個庫就會在市場上受到歡迎。從而呢成為自己的一個產品,甚至可以賺到自己的第一桶金。
當然好處是說不完的,這就是為什么那多人愿意寫庫的原因。
我們要做一個什么樣的庫?
考慮到大部分來看這篇文章的童鞋可能是學生或者是初學者,所以呢,我們一開始不搞個非常強大的而又非常專業高級的庫。而是呢,我們一個問題一個問題解決,如果我們的庫把工作學習中的所有問題都解決了。那么這個庫就經過了考驗,自然就會成為一個非常強大的庫了。
而筆者的 QFramework 就是這樣慢慢發展出來的。最初根本就不是一個框架,甚至連庫都不是,它只是一個筆者自己的一個學習工程。
只要學習了知識點,就寫一個 Example 或者 Test,然后導出成 Unity Package。
而開始做項目的時候呢,就把這個 UnityPackage 導進來,在項目中,如果學習到了新的知識或者見到不會的東西,就可以在這個 UnityPackage 里寫下 Example 或者 Test 進行學習,那么等到一天結束,就會把這個 UnityPackage 導出來放到網盤或者 U 盤里,等回家之后想學習的時候,就在家里的工程里導入這個 UnityPackage。
從而達到一個時間復用的目的。
所以從今天開始呢,我們就開始打造我們的庫。
而在這個系列的專欄里,保證大家會有收獲的,并且實力得到很大地提升。
環境準備
到這里我想大家應該都安裝好 Unity 了吧。筆者推薦使用的 Unity 版本呢,最好是 2017.2.0 以后的版本。
  • 然后呢,我們要創建一個工程,名字自己隨意起。
  • 在 Assets 目錄下創建一個文件夾,叫做 QFramework,如下圖所示。
    006tNc79gy1fzc7594wb7j305505mt8n.jpg
  • 這樣就夠了。然后在 QFramework 目錄下創建個場景。之后將 QFramework 進行一次導出,如下圖所示

006tNc79gy1fzc759kygij309o0dgdit.jpg
  • 每次導出要確保取消選擇 Include Dependencies。
    006tNc79gy1fzc75c1ie9j30pi0ms0wk.jpg
  • 導出之后的文件名,叫做 QFramework_20181102_18。20181102_18 是寫這篇文章的日期加上時間,大家呢可以用自己在導出時的當天的日期 + 時間。
    006tNc79gy1fzc75e9q54j31ds0bk42s.jpg

為什么要用日期 + 時間作為文件名呢?
這樣可以知道當有多個 package 的時候,哪個文件是新的。
這樣一次完整的環境準備就完成啦。
我們接下來就可以愉快地進行學習了。
第一個 Example
因為是框架搭建的課程,所以呢,Example 會硬核一點。這樣大家也正好可以收集這些知識點到自己的庫里。如果是介紹非常基礎的知識點的話,那有些文章的內容就沒有意義了。
到這里又不能憑空產生 Example,最好的還是從我們專欄本身出發,也就是說學以致用。這是最好的方式。
問題
在環境搭建的過程中呢,有一步是給文件命名,比如 QFramework_20181102_18。
每次都導出的時候就看一遍日期和時間,再手打一遍,太麻煩了。這部分是比較耗時的操作
那么第一個 Example 就用來解決這個問題。
關鍵點
  • 要解決這個問題,并不需要創建場景和 GameObject。直接靠編輯器 API 就能完成。所以要用編輯器 API。我們用 MenuItem 就足夠了。
  • 名字格式是 QFramework_年月日_時,這里要獲取當前的年月日,我們用 DateTime 就可以解決了,DateTime.Now.ToString() 可以支持格式化日期。
  • 由于是知識點收集,所以目錄要盡量保持簡潔。知識點的目錄層級最大到二級就好,這樣比較清晰一點。所以就不用 Editor 文件夾了,取而代之的是在代碼中給每個 UnityEditor API 都加上宏判斷,這樣做的目的,是為了不影響自己所在項目打包。
基于以上,測試代碼如下:
[C#] 純文本查看 復制代碼
#if UNITY_EDITOR
using UnityEditor;
#endif

using UnityEngine;
using System;

namespace QFramework
{
    public static class LogFileName 
    {
        #if UNITY_EDITOR
        [MenuItem("QFramework/1.生成 unitypackage 名字")]
        #endif
        private static void GenerateUnityPackageName()
        {
            Debug.Log("QFramework_" + DateTime.Now.ToString("yyyyMMdd_hh"));
        }
    }
}

操作步驟
我們先導入之前的 QFramework_20181102_18.unityackage。
之后在 QFramework 目錄下創建一個文件夾,名字叫做 1.文件名生成。再 1.文件名生成目錄下創建腳本,叫做 LogFileName,如下。
006tNc79gy1fzc75hkifxj30r809o0te.jpg
打開 LogFileName.cs 之后鍵入如下代碼。
[C#] 純文本查看 復制代碼
#if UNITY_EDITOR
using UnityEditor;
#endif

using UnityEngine;
using System;

namespace QFramework
{
    public static class LogFileName 
    {
        #if UNITY_EDITOR
        [MenuItem("QFramework/1.生成 unitypackage 名字")]
        #endif
        private static void GenerateUnityPackageName()
        {
            Debug.Log("QFramework_" + DateTime.Now.ToString("yyyyMMdd_hh"));
        }
    }
}

之后呢,等待 Unity 編譯。
編譯通過之后觀察 Unity 的頂部菜單欄,如下圖所示:
006tNc79gy1fzc7dqfkdbj306z0dg5.jpg
點擊 1.生成 unitypackage 名字 這個菜單欄。
會看到輸出如下:
006tNc79gy1fzc75kfja0j30ks064gm6.jpg
這部分就可以復制過來了使用了。這里要注意一下,要從控制臺窗口的下方復制。
如圖所示:
006tNc79gy1fzc75mtx9rj30n412mtav.jpg
這樣就可以了。
OK,那么我們復制這個名字。然后進行開始執行導出 unitypackage 操作。
而導出時,文件名字直接粘貼就好了。
到此呢,教程的 unitypackage 名字為 QFramework_20181103_01,筆者就把它收起來了。
小結
我們解決了第一個問題,這個問題來自于本教程本身。與大家大多數要解決的問題一樣,問題都源自于身邊。
從本質上來講,筆者解決的問題是減少人工的問題。比如在之前,每次在導出 unitypackage 時候,筆者都需要去瞄一眼當前的日期,并把它打出來。現在變成了只需點擊一下就可以了。
今天就到這里,我們下一篇再見,拜拜~
轉載請注明地址:liangxiegame.com
更多內容
  • QFramework 地址:https://github.com/liangxiegame/QFramework
  • QQ 交流群:623597263
  • Unity 進階小班
    • 主要訓練內容:
      • 框架搭建訓練(第一年)
      • 跟著案例學 Shader(第一年)
      • 副業的孵化(第二年、第三年)
    • 權益、授課形式等具體詳情請查看《小班產品手冊》:https://liangxiegame.com/master/intro
  • 關注公眾號:liangxiegame 獲取第一時間更新通知及更多的免費內容。


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 注冊帳號

本版積分規則

5.1勞動節課程大促銷!27日零點開始!
神马电影34pp影视午夜