分類 Unity 下的文章

今天遇到一個奇怪的問題, 將素材用 texture pack 導入到 unity, 要使用 Sprite editor 設定 border, 發現左下角這個素材一直點不到, 不管怎麼點綠色的選取都會選到最上方的素材, 而且這時候會發現有兩個綠色選取框, 正常的情況應該是像右側圖一樣.

84275-af0y56k7lx.png

89856-gp6byp8kc5.png

測試換圖發現就是某幾個素材有毛病, 一開始以為是 alpha 間格太小, 調整了 texture packer 設定還是沒用, 最後想說自己修改 sprite 設定看能不能解決問題, 結果發現了奇怪的地方

Sprite Editor 修改的配置最終是在 Atlas_CardPK.png.meta 裡面的, 而 texture packer 導出的是 Atlas_CardPK.tpsheet, 修改這個沒有任何效果

而在 Atlas_CardPK.png.meta 發現了出問題的地方, 如下圖, SpriteID: 00000000000000000800000000000000, InternalID: 0
23889-f0owxct046.png

這時候把 SpriteID 自行修改附值, 修改沒有重複的隨意值如下
10418-fhckta5d7y8.png

切換回 unity 開啟 Sprite Editor 隨便修改一個值點 Apply , 再切回去 Atlas_CardPK.png.meta 發現 unity 已經自動修改 SpriteID, 之後 texture packer 再重新生成倒出資源都不會有問題
37710-ozqhu1bsu1e.png

這個問題應該是 unity temp 緩存的 uuid 有問題才會造成 texture packer 匯出資源無法獲取正常 SpriteID, 只要生成正常了就好了

用了網上QRCode版本包 QR CodeBarcode Scanner and Generator 4.6.unitypackage

一切都做得差不多了打包android測試結果發現了問題, 如下

Unable to load DLL 'EasyWebCam'. Tried the load the following dynamic libraries: Unable to load
31742-qq0fkbstg8o.png

測試開了新項目只導入package發現是可以正常運行的, 後來查看 player 設定發現新項目只有armv7 並沒有開啟 armv8, 而且查看導入的package內容也發現lib庫只有v7a的
30885-awj70pxcbp8.png

後來查閱最新版本購買使用問題解決了

為了一勞永逸解決測試轟炸超人手機上虛擬搖桿問題, 想了很久剛好還有一把庫存的手把,於是
決定直接在PC上接入XBox手把

XBox手把配置如下
41942-f5yo4cqbrmd.png

我們要用到X axis, Y axis 來作為測試用, 必須是可以圓滑操控的

在 Unity 開啟 Input Setting , 先新增兩組設定, 再 Copy "Horizontal" 並貼在新增的配置上
82959-11k6lbsgcwri.png

新增的配置如下, 將
[Horizontal]
Type: Joystick Axis
Axis: X axis
Joy Num: Get Motion form all Joysticks

[Vertical]
Type: Joystick Axis
Axis: Y axis
Joy Num: Get Motion form all Joysticks
76976-1fgin4qaid4.png

接著寫一段代碼測試, 沒有問題就可以開始用
86113-3tyczsxqew3.png

SoftMaskForUGUI插件地址
https://github.com/mob-sakai/SoftMaskForUGUI/tree/main

在 manifest.json 配置如下:

"com.coffee.softmask-for-ugui": "https://github.com/mob-sakai/SoftMaskForUGUI.git#1.0.0"

結果出現了下面的錯誤

An error occurred while resolving packages:
  Project has invalid dependencies:
    com.coffee.softmask-for-ugui: Error when executing git command. fatal: unable to connect to github.com:
    github.com[0: 20.205.243.166]: errno=No error
unity package manager 無法連到github

21256-zrtfvigjycd.png

unity package manager 不使用IE代理配置, 必須要設定 http_proxy

開啟vpn自動配置系統代理, 從 vpn 可以看到 http 監聽端口為 socket port + 1
58881-ilxtcqkzoxq.png

開啟後去代理設定裡面查看, 果然是 10809(10808+1)
26739-ml5o2uu25r.png

接著參考 unity 說明添加系統配置

http_proxy : http://127.0.0.1:10809
https_proxy : http://127.0.0.1:10809

https://docs.unity3d.com/cn/2019.3/Manual/upm-network.html
51004-mk0vox3mtl.png

接著把 unity 關閉後並且重啟 unity hub 開啟專案
發現還是錯的回頭去看 manifest.json, 把 https 改成 http, https 必須要有證書, 所以改成 http 試試看
86105-snwqvat5zp.png

package manager 重刷後發現成功了, 從 vpn log 也察看到對應的請求
http://github.com/mob-sakai/SoftMaskForUGUI.git/info/refs?service=git-upload-pack [http -> proxy]
94666-qvy3fpqxkz.png

接著就是把 demo 給匯入
08444-xc30u86zbla.png

測試使用 QR CodeBarcode Scanner and Generator 插件

將插件引入unity項目中, 使用debug key進行打包apk, 發生下面這個錯誤

13258-q8bqwcwdsp.png

這是因為打包apk過程中要下載groovy-all-2.4.15.jar, 連接不到的緣故
我們改成 export project 打包出來再用 android studio 處理

16758-1x9ru8x2x9ri.png

Android執行完成 gradle files 進行安裝後出現下面問題

The application could not be installed: INSTALL_PARSE_FAILED_MANIFEST_MALFOR

找到 intent-filter 的地方, 在前面加 android:exported="true", 如下
47714-53jp1y06k3.png

在打包, 出現下面問題

The application could not be installed: SHELL_UNRESPONSIVE

把手機vpn打開, 這台 pixel install apk 如果沒有翻牆就會卡住, 而且在桌面會找不到app, 但軟件清單裡面卻可以找到

最後執行閃退了

93084-77uocp3pg1.png

這是因為沒有打開 camera 權限, 開啟之後就好了