Множественный сценарий Unity Scene для сборки iOS - PullRequest
0 голосов
/ 08 января 2019

Две сцены в единстве. Нужно написать скрипт для управления сценами единства (2) в собственном приложении iOS, предположим, что 2 кнопки в собственном приложении, когда я нажимаю 1-ю кнопку, должны отображать scene1 и 2-ю кнопку для scene2 примерно так. Я нашел скрипт для Android, но нужно написать его для iOS. Прикрепленный скрипт для Android,

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.VR;
using System;

public class AnimatorScript : MonoBehaviour 
{
    public Animator animation;
    AndroidJavaObject intent , currentActivity , extras;
    bool hasExtra;
    string arguments;

    // Use this for initialization
    void Start ()
    {
        try
        {

        AndroidJavaClass UnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); 
        AndroidJavaObject currentActivity = UnityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
        intent = currentActivity.Call<AndroidJavaObject>("getIntent");
        hasExtra = intent.Call<bool> ("hasExtra", "test_val");
         Debug.Log(hasExtra);
        Debug.Log("start");
        }
        catch(Exception e)
        {
            Debug.Log(e);
        }

    }

    public void loadScene(string sceneName)
    {
        SceneManager.LoadScene(sceneName);
    }

    // Update is called once per frame
    void Update () 
    {

        if (hasExtra) 
        {
            Debug.Log("has extra");
            extras = intent.Call<AndroidJavaObject>("getExtras");
            arguments = extras.Call<string> ("getString", "test_val");
            if(string.Equals(arguments,"scene1"))
             {
                 animation.Play("dancing_warrior_sun-001");
             }
             if(string.Equals(arguments,"scene2"))
             {
                //  animation.Play("seating_poses-001");
                 SceneManager.LoadScene(1);
             }
             else Debug.Log("No Animation Found");

            Debug.Log(arguments);
        } 
        else 
        {

            Debug.Log("no extra");
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Существует два способа изменения / переключения сцен,

1) В Unity поместите кнопку под UI и напишите скрипт для смены сцены следующим образом,

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MenuActions : MonoBehaviour {
  public void MENU_ACTION_NextButton(string sceneName)
    {
        Application.LoadLevel(sceneName);
    }
}

Перетащите этот сценарий на основную камеру и нажмите кнопку, в нижней части инспектора щелкните, чтобы добавить эту основную камеру и назовите имя сцены, которое необходимо изменить. Сделайте это для сцены 2 с тем же сценарием и назовите сцену также. enter image description here

2) Если у вас есть кнопка в вашем родном приложении, напишите сценарии следующим образом и попробуйте написать сценарий для void update,

   using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using System.Runtime.InteropServices;
    using UnityEngine.SceneManagement;
    public class SceneChanger : MonoBehaviour {

        // Use this for initialization
        void Start () {

        }

        // Update is called once per frame
        void Update () {
            //SceneManager.LoadScene(scene);
// try your script................
        }


    public void ChangeScene( string scene ) {
       // Application.LoadLevel(scene);
        SceneManager.LoadScene(scene);
    }
    }

Надеюсь, что это даст вам концепцию ..

0 голосов
/ 08 января 2019

Создание приложения с собственным плагином для iOS

Вы можете следить за официальным документом, используйте UnitySendMessage из iOS для вызова сценария управления сценой в Unity.

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