ДИАЛОГ-шоу для Android для мобильного приложения Unity - PullRequest
1 голос
/ 22 июня 2019

Как сделать так, чтобы при нажатии кнопки отображался диалог выбора даты Android? Я посмотрел на пример на Unity Docs unity docs AndroidJavaProxy , но кажется, что кнопка создания заполнена только датой и не выводит ДИАЛОГ Выбора даты, как он предполагает, на странице. Тестирование на Samsung Galaxy Note 8. Код не предоставлен, поскольку он точно такой же, как и в ПРЕДОСТАВЛЕННОЙ ССЫЛКЕ.

1 Ответ

2 голосов
/ 25 июня 2019
using UnityEngine;
using TMPro;
using System;

public class SelectedDate
{
    public static DateTime date = DateTime.Now;
}
public class DateCallback : AndroidJavaProxy
{
    public DateCallback() : base("android.app.DatePickerDialog$OnDateSetListener") { }

    public void onDateSet(AndroidJavaObject view, int year, int monthOfYear, int dayOfMonth)
    {
        SelectedDate.date = new DateTime(year, monthOfYear + 1, dayOfMonth);
    }
}
public class DatePicker : MonoBehaviour
{
    public TMP_Text startingDateText;
    public TMP_Text goalDateText;
    private AndroidJavaObject activity;
    private DateTime newSelectedStartingDate;
    private DateTime newSelectedGoalDate;

    void PickDate()
    {
        new AndroidJavaObject("android.app.DatePickerDialog", activity, new DateCallback(), SelectedDate.date.Year, SelectedDate.date.Month - 1, SelectedDate.date.Day).Call("show");
    }

    void OnGUI()
    {
        if (GUI.Button(new Rect(10, 10, 450, 100), string.Format("ddd d MMMM, yyyy", SelectedDate.date)))
        {
            activity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity");
            activity.Call("runOnUiThread", new AndroidJavaRunnable(PickDate));
        }
    }
}

Кажется, это работает, но работает правильно только через OnGUI, где он обновляется после закрытия диалога выбора даты Android.Создание кнопки в пользовательском интерфейсе Unity и выполнение кода при нажатии кнопки не обновляется до следующего нажатия кнопки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...