發表文章

目前顯示的是 2019的文章

[Unity] RPG 想隨機生怪,又不想怪生在石頭上 水中 等卡點的地方解決辦法 NavMesh.SamplePosition

想要在一整片開放地圖,隨機生怪,又不想用點位,一一設定的話,可以用NavMesh.SamplePosition 但是先決條件是你的地圖是透過 NavMesh 去Bake路線的, 才能夠使用這個辦法 # NavMesh  參考資料 :  https://docs.unity3d.com/ScriptReference/AI.NavMesh.html                                         https://jerrard-liu.blogspot.com/2016/07/NavMeshBaking.html 如果要在可走的地方隨機生怪可以用以下方法 public struct OptPos { public bool ok ; public Vector3 pos ; } private OptPos randomOptPos ( Vector3 pos) { NavMeshHit hit ; if ( NavMesh . SamplePosition ( pos , out hit , 1.0 f , NavMesh . AllAreas ) ) { return new OptPos ( ) { ok = true , pos = hit . position } ; } return new OptPos ( ) { pos = pos } ; } unity3d   帶入pos (隨機的點位),他會搜尋範圍 " 1.0 f " 可以放的點位,如果沒有則失敗,所以數值愈大 找的範圍越大 參考文獻: https://docs.unity3d.com/ScriptRefe

[Unity] UniRx 初步研究心得 與 Enum 的交互使用

今天研究了一天 累! 寫個心得,直接看Code 巴: //實際超做 Ex 獲勝視窗的UI //宣告 private bool canClicked = false ; // 現在可否可以點擊 public enum Page { Idle , Player , Pet , END } private IReactiveProperty < Page > currentPage = new ReactiveProperty < Page > ( Page . Idle ) ; // 現在的頁面的 Observer // 滑鼠點擊 來控制頁面切換 var clickStream = Observable . EveryUpdate ( ) . Where ( _ = > Input . GetMouseButtonDown ( 0 ) ) ; clickStream . Buffer ( clickStream . Throttle ( TimeSpan . FromMilliseconds ( 250 ) ) ) . Where ( xs = > xs . Count > = 2 ) . Subscribe ( xs = > { if ( canClicked ) { // 確認��否能點�"� if ( currentPage . Value = = Page . Idle ) { currentPage . Value = Page . Player ; //�"�變頁面 } else if ( currentPage . Value = = Page . Player ) {

[Unity] 如何在 自定義編輯器中讀取所有的 場景檔案 / 透過Editor 開啟Scene

讀取所有場景  List scenes =  EditorBuildSettings.scenes.ToList(); 開啟場景  EditorSceneManager.OpenScene("Assets/Self/Scenes/Arena/Forest.unity");

[Java] try-with-resources 說明, 如何自動 close BufferedReader 等 IO 物件

每次用到 BufferReader , IO 等物件時候,通常都要寫 很多 try catch 去確保 物件有 close ,免得memory leak issue,像是以下程式碼 請看下面這個例子: package idv.jacky.ironman4; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class Day20Example { public static void main (String[] args) throws IOException { BufferedReader br = null ; try { br = new BufferedReader( new FileReader( "c:\\temp.txt" )); String line; while ((line = br.readLine()) != null ) System.out.println(line); } catch (IOException e) { e.printStackTrace(); } finally { if (br != null ) br.close(); } } } 上面的例子,可以看到程式碼非常多的巢結構,可以改成以下的寫法 請看下面這個例子: package idv.jacky.ironman4; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class Day20Example { public static void main (String[] args) throws IOException { try ( BufferedReader br = new BufferedReader( new FileReader( "c:\\temp.txt"

[Linux ] 常用指令

用關鍵字查詢執行的 ID ps -ef|grep [關鍵字]

Docker 常用指令

Docker 常用指令 Stop所有的 container docker stop $(docker ps -a -q) windows git Bash / Linux Only 刪除所有的 container docker rm $(docker ps -a -q) windows git Bash / Linux Only 刪除所有的 Images docker rmi $(docker images -a -q) windows git Bash / Linux Only 刪除container by name docker rm $( docker stop $(docker ps -a -q --filter ancestor=<container name>)) 刪除Image by name docker rmi --force $(docker images -q 'domi/sensor-raw-query' | uniq) 建置Image docker build -t {Tag名稱} . 上傳image到 docker hub docker push yourhubusername/imagename 下載 image 從 docker hub docker pull yourhubusername/imagename 執行docker docker run --name {自行命名} -d -p 8080:80 {images name} 進入container docker exec -it container_name /bin/sh 清除沒在使用的 Volume docker volume prune -f hackMD

[Gradle][Springboot] Gradle + SpringBoot multi-project + docker 如何設定

呼 ,太多版本 問題搞再一起,於是就搞了一天 網路上大多是 Gradle + SpringBoot multi-project  :   https://docs.gradle.org/current/userguide/multi_project_builds.html Gradle +SpringBoot docker :  https://spring.io/guides/gs/spring-boot-docker/ 的資料, 好我們要把上面說的在整合起來, 那其實就是要用最新的 gradle 設定 + spring boot 最新的設定 就沒問題了, 那我把範例專案就放在下面 , 直接看是最開快的啦 : https://github.com/kirinchen/gradle-multi-project-integration-springboot-and-docker-example

[Java] Eclipse / STS 如果執行時需要帶入參數,要如何設定

圖片
像是Java 的應用程式是可以代參數進入,但是如果有參數的Java程式透過 Eclipse IDE   這時候運行就會發生以下錯誤 Some examples below org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [net.surfm.account.Application]; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'env' in value "classpath:${env}.properties" at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:181) ~[spring-context-4.3.11.RELEASE.jar:4.3.11.RELEASE] at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:308) ~[spring-context-4.3.11.RELEASE.jar:4.3.11.RELEASE] at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:228) ~[spring-context-4.3.11.RELEASE.jar:4.3.11.RELEASE] at org.springframework.context.support.PostProcessorRegistrati

[Gradle] 修復 java.lang.IllegalStateException: Could not find tools.jar. Please check that contains a valid JDK installation.

圖片
用 Gradle build 專案遇到  以下問題 java.lang.IllegalStateException: Could not find tools.jar. Please check that contains a valid JDK installation. 請到Task 按右鍵 然後選擇 Java Home 的位置 這樣就修復好了