如何測試基於Unity3D引擎的遊戲

2022-06-05 15:18:07 字數 3081 閱讀 4595

由於遊戲的介面是通過遊戲引擎渲染出來的,遊戲介面沒有系統原生的控制項資訊,所以對於遊戲,我們需要接入 poco-sdk 才能獲取到遊戲介面中的控制項資訊。下面以unity開發的手遊為例,介紹如何在android和ios平台進行連線。

android 平台

這個資料夾轉殖下來。

將轉殖下來的unity3d資料夾放置於你的unity專案的assets/scripts資料夾下。

assets/scripts/unity3d目錄下以未用到的ui系統命名的資料夾刪除。例:假如您的專案使用的ui系統是ugui,請將fairyguingui兩個資料夾刪除,保留ugui資料夾。

unity3d中開啟您的專案,並將unity3d/pocomanager.cs作為乙個script component新增到您的gameobject中,要求掛載在乙個永不銷毀的物件下,比如通常情況下的主相機。

舉例: 點選demo這個場景下的main camera, 會在右方出現inspector介面,點選inspector介面當中的add component

在彈出的對話方塊中輸入poco,選擇出現的poco manager這個選項。

完成後會在inspector介面出現如圖所示的component

點選介面左上角file->build settings, 生成乙個合適的安卓包,並安裝到您的手機上。

啟動airtest ide,按照上文所述將airtest ide與您的手機鏈結,並啟動對應的遊戲。

在左下角的poco輔助窗中選擇unity模式,即可看到當前介面的ui樹結構:

在選擇unity模式之後,airtest ide會自動插入poco的初始化**:

之後的指令碼編寫,就可以利用poco提供的api對遊戲介面上的元素進行操作了。

再點選drag drop會出現如下所示的介面。

每將一顆星星拖動到螢幕中心的貝殼上,將得到20分;如果將5顆星星依次拖動到貝殼上,那將獲得100分。下面的指令碼就是在測試依次拖動5顆星星是否會得到100分的分數。

from airtest.core.api import *auto_setup(

__file__

)from poco.drivers.unity3d import

unitypoco

poco =unitypoco()

poco(

'btn_start

').click()

time.sleep(1.5)

poco(

'drag_and_drop

').click()

shell = poco('

shell

').focus('

center')

for star in poco('

plays

').offspring('

star'):

star.drag_to(shell)

time.sleep(1)

assert poco('

scoreval

').get_text() == "

100", "

score correct.

"poco(

'btn_back

', type='

button

').click()

點選執行指令碼按鈕,就會得到如下所示的結果。

ios平台

同樣的,先完成引擎sdk接入,然後通過airtest ide連線ios手機

與android不同的是,ios unity poco的連線需要啟動兩個proxy,8100埠用於連線ios手機,5001埠用於連線poco-sdk的rpc埠

iproxy 8100 8100iproxy 5001 5001
這裡的iproxy相當於adb中的forward

連線好ios手機之後,選擇poco輔助窗中的unity模式,即可看到當前介面的ui樹結構:

之後即可通過poco提供的api,對ios上的遊戲編寫自動化測試指令碼了。

基於Unity3D引擎的Android遊戲優化

最近專案進入收尾階段,之前對專案做了很多優化,mesh合併 減少drawcall和模型骨骼以及物理計算,合併材質球,優化 等等,在ios上還好,但是android上,試過幾款手機,從低端到高階,發現效能還是很差,所以又花了幾天來研究摸索,終於把遊戲效能搞定。記錄下來,留作以後參考。1.更 新不透明貼...

Unity3D 碰撞測試

碰撞測試這個再遊戲的開發中是很有必要的,當敵人的攻擊的時候,發生碰撞這時候就會造成一定的傷害,因此我們需要根據受到的傷害對使用者的生命值進行控制,因此碰撞的測試是 我們在遊戲的開發過程中需要的一種比較重要的資料。在unity中的碰撞測試有兩種,一種是碰撞,一種是觸發!一種屬於物理碰撞,一種屬於非物理...

Unity3D如何編寫AI

1.unity3d 簡單ai編寫 由於這次介紹的ai 很簡單,直接貼上,ai分成四個狀態 思考,轉身,移動,攻擊,這裡只是初步實現,所以想實現簡單點的操作,就像自動範圍內隨機移動,鎖敵攻擊,超出距離復位,近距離察覺等。1 enemy ai.js 2 3 private var regression ...