目前我有一个移植到Android的Unity游戏。我必须实现蓝牙控制,水平移动游戏对象。
现在我正在使用以{10}延迟调用UnityPlayer.UnitySendMessage("paddle", "changePosition", position)
的循环。我已经读过这个函数调用根本没用。
有没有办法在Unity中调用changePosition
函数并更有效地提供position
参数?
目前,桨板运动可能不时有0.5ms +滞后。
编辑这是我当前要求Unity功能的循环:
int tableRowsCounter = 0;
int[] rawData;
while (!abort) {
if (!btHandler.isAborted()) {
tableRowsCounter++;
double currentAngle = getFinalAngles()[axis];
currentAngle = currentAngle > 0 ? currentAngle * rightMultiplier :
currentAngle * leftMultiplier;
UnityPlayer.UnitySendMessage("Paddle", "changePosition", Double.toString(currentAngle));
rawData = getRawData();
dbHandler.addDataToArrayLists(rawData);
if (tableRowsCounter == 500) {
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
dbHandler.insertData();
return null;
}
}.execute();
tableRowsCounter = 0;
}
Thread.sleep(30);
}
}