跳到主要內容

發表文章

[Unity]Echosphere生態球-開發日誌-3

[Unity]MyEchosphere我的生態球-開發日誌-8月         好久沒更新日誌了,開發一段時間都會忘記(懶)要寫部落格紀錄,一方面是為了做學習筆記,紀錄自己學了什麼做了什麼,一方面也是為了宣傳自己的作品,與更多人交流。         其實我本來只是要做養植物的遊戲就好,但體驗過後覺得會動的東西比較有趣一點,所以還是捏了一些動物,新增一些特效 3D建模 哈士奇與羊 發瘋的羊群 新增羊效果,增加狀態識別 死亡、餵食、睡覺 動物設計 移動 本來我動物是用Unity MavMesh agent做,但Bake地圖一直不夠好,可能是因為我的地形不適平面的緣故,因此我打算自己寫個腳本讓物件自己移動。 一直卡在動畫這邊弄不好,所以.....改成用滾的吧XD 既然是用滾得用圓形的樣子比較適合 利用addForce施加力量進行翻滾,並且羊會搜尋距離範圍內的食物,滾到目標物。 後續會開始製作收集要素,動物UI設計

[Blender練習]DAY-1/DAY-2

新增 植物 小船 釣竿 房子 旗子

[筆記]讓粉絲發出「哇靠」的聲音:「有病制作」遊戲創業的從0到1-哈利波菜演講筆記

讓粉絲發出「哇靠」的聲音:「有病制作」遊戲創業的從0到1         星期六參加了哈利波菜演講的創業秘辛,大概能體會創業這條路不是普通人走的,除非你有異於常人的自虐或是勇於接受挑戰,不然如果你想單純賺大錢,這條路可能不是你想走的路。其中哈利波菜提到,以遊戲來比喻,他自己常常殘血又回滿,殘血又回滿的這種模式死撐下去,如果他沒有毅力,或是因為現實因素(例如股東),不然早就放棄了。 哈利波菜的創業之路,分為創業前與創業後 : 創業前: 「哇靠」精神         在菠菜還在大學時代時經常到夜市擺攤,而他賣的是自己創作的作品,並在那時也體會到與警察玩鬼抓人的經驗。之後菠菜讀了研究所並開始製作遊戲,當時的畢業作品甚至也在因緣際會下參加了中華電信所舉辦的比賽並得獎。但是那時候因為要當兵,就打算趁進入“人間地獄”的這段時間,製作了一款遊戲名為「有病測驗」。         在製作遊戲時,他的想法其實很簡單,無論是在比賽時的裁判,還是給社會上的玩家,目的只有一個:「就是讓大家有發出『哇靠』的語助詞」。我把它歸類於一種精神,就是在要讓玩家在遊玩你的作品時,會發出驚奇、特別、與眾不同的讚嘆聲音。         當完兵之後,意外的獲得了第一個作品的成功也因此品嚐了甜蜜的果實,也由此確立了自己的工作方向:製作遊戲。 「有病測驗」         當時菠菜想做這款遊戲起因於身旁的女性友人喜歡玩心理測驗,但是只是心理測驗有什麼好玩的呢?所以就加入了有病元素以及背後故事。何謂有病元素?是一種惡搞、KUSO的想法與風格,你作答的問題與答案千奇百怪,甚至讓人覺得:作者到底嗑了什麼藥才能想到這些?                   然而在剛開始的時候並沒人知道這款遊戲,於是菠菜就到了巴哈姆特場外版等等的論壇分享自己的創作,也開始經營部落格、創作漫畫、架設網站、製作周邊小物與布偶等等建立屬於自己的品牌價值。 成功?失敗?   ...

[Unity]Echosphere生態球-開發日誌-3

開發時程: 2019/06/01~現在 兩個月 開發進度: 主要植物年齡 種子 成長期 成年期 死亡 場景建置 自動生成植物 兩種物件移動方式(點擊拖拉、移動面板) 時間系統 開發目標: 優化植物生長動畫 場景切換 音樂 存讀檔 生物多樣性 元素多樣性

[Unity]利用 Scriptable Object 製作彈性UI按鈕

什麼是Scriptable Object? 是一種存放或整理資料的方式,也是物件模型、範本,你可以把它看成在網頁內的CSS,設定完成資料範本後,我們可以拿來客製化各種資訊,例如按鈕顏色、圖示。 本例中將使用來作為修改UI皮膚的模板,例如我要修改按鈕的顏色,我只需要修改Scriptable Object Data內的顏色,他就會自動幫我套用所有相關的按鈕,或是設定預設模型,未來如果需要創建許多按鈕,就能直接拿來用。 為何要用? 如果遊戲內物件越來越多,會導致於越來越無法管控,之後想要修改大量物件,會變得很麻煩,如果採用此方式,可以很簡單的做替換的動作。 建造一個可客製化UI元素 建造一個使用Scriptable Object建造模板 配置不同的風格到不同的UI元素 建立模板: 首先需要建立四種腳本。 FlexibleUIData Scriptable Object  存放基本資料,例如顏色、按鈕圖示 FlexibleUI Base Class  擴充和控制UI元素,可看成S.O.與物件的橋樑 FlexibleUIButton Class   繼承 Base Class 的資料 該腳本為每個按鈕的Component 提供選單選擇按鈕類型 FlexibleUIInstance Class (一個放置Prefabs的資料表,處理生成新的按鈕)  FlexibleUIData Scriptable Object FlexibleUI Base Class FlexibleUIButton Class FlexibleUIInstance Class 參考資料:

[Unity_Learning] ScreenToWorldPoint如何使用

前言: 在線與球專案中,為了避免讓球跑出視線外,我加入了4個box collider,分別將他們座標設定對應於攝影機中的上下左右,為了達到響應式的設計,我將讀取螢幕的長寬,並且轉換成遊戲內的世界座標。 首先,需要幾個背景知識: Unity中有幾個座標空間,世界空間(World Space)、螢幕空間(Screen Space)、Viewport,各自獨立。 他們可以透過Function或叫Unity Scripting Api進行轉換。例如螢幕空間轉換到世界空間:ScreenToWorldPoint(螢幕空間) {get :世界}。 世界座標為在遊戲畫面中,所建立的物件座標 ;螢幕上的座標為解析度,單位為像素。 例如1K畫質,畫面座標為左下(0,0)~右上(1024,768),例如上圖紅線 ;Viewport為將螢幕空間標準化轉換成最大到(1,1)的空間,因此無論畫質多高,最大都是(1,1)。 上圖中,白色外框為攝影機的邊界,我將攝影機中央設定為世界座標(0,0)位置。黃球與紅球為遊戲物件請忽略。 重要 :因為我將攝影機中央設定為世界空間(0,0,0)位置,因此螢幕空間(0,0,0)不等於世界空間(0,0,0)。 重要 :此示範專案是2D,攝影機的投影是正投影而非透視,若為透視會發生意料之外的情形。 實作: 1~4 :設定邊界位置座標。 5~8:設定邊界寬高,符合螢幕大小。 結果: 參考資料: https://liusuwanxia.github.io/unity/2017/06/15/Rect-Viewport-Screen https://docs.unity3d.com/ScriptReference/Camera.ScreenToWorldPoint.html https://www.youtube.com/watch?v=7QomGnOyQoY

[Unity](Side-Project)Line And Ball(線與球)

簡介: 這是一款簡易的益智遊戲,玩家利用滑鼠左鍵畫線,右鍵生成白球,並將白球引導至紅色終點,即可過關,遊戲時間結束後,將計算通關數及碰撞,通關數越高並且碰撞越低者獲勝 。