unity3d 如何在Unity中使用Android Java代码?

2ledvvac  于 2022-12-13  发布在  Android
关注(0)|答案(1)|浏览(117)

我在Unity中的项目有一个来自链接的单元格输入系统数组,我如何才能得到它?我想在向前转换时得到+1,我想在向后转换时得到-1。我如何才能做到这一点?
https://developer.android.com/training/wearables/user-input/rotary-input
我在Unity中的项目有一个来自链接的单元格输入系统数组,我如何才能得到它?我想在向前转换时得到+1,我想在向后转换时得到-1。我如何才能做到这一点?https://developer.android.com/training/wearables/user-input/rotary-input

4dc9hkyq

4dc9hkyq1#

我不确定“来自链接的单元格输入系统数组”包含什么,但要在Unity中获取数组中特定单元格的值,可以使用Array类的GetValue()方法。该方法将单元格的索引作为参数,并返回该索引处的单元格值。
例如,如果您有一个名为myArray的整数数组,而您想要取得索引为3的储存格值,您可以使用下列程式码:

int value = (int)myArray.GetValue(3);

若要取得平移的方向,您可以使用MotionEvent对象的ev.getAxisValue()方法,此方法会传递至onGenericMotion()方法。此方法会将您要取得其值的轴当做参数,并传回目前动作事件的该轴值。
例如,如果要获取当前运动事件的AXIS_SCROLL轴的值,可以使用以下代码:

float value = ev.getAxisValue(MotionEvent.AXIS_SCROLL);

然后,您可以使用此值来确定平移方向,并相应地将单元格值加1或减1:

myView.setOnGenericMotionListener(new View.OnGenericMotionListener() {
  @Override
  public boolean onGenericMotion(View v, MotionEvent ev) {
    if (ev.getAction() == MotionEvent.ACTION_SCROLL &&
        ev.isFromSource(InputDeviceCompat.SOURCE_ROTARY_ENCODER)
    ) {
      // Get the current value of the cell at index 3
      int value = (int)myArray.GetValue(3);

      // Get the value of the AXIS_SCROLL axis for the current motion event
      float axisValue = ev.getAxisValue(MotionEvent.AXIS_SCROLL);

      // Add or subtract 1 from the cell value based on the direction of translation
      if (axisValue > 0) {
        value++;
      } else if (axisValue < 0) {
        value--;
      }

      // Set the new value of the cell at index 3
      myArray.SetValue(value, 3);

      return true;
    }
    return false;
  }
});

相关问题