示例#1
0
        public void Apply()
        {
            if (Aoliao.Count > 0)
            {
                Quaternion  qua = Quaternion.identity;
                IEnumerator coroutine;
                for (int i = 0; i < Aoliao.Count; ++i)
                {
                    if (i == Aoliao.Count - 1 && Aoliao[i] == m_Ao)
                    {
                        Aoliao[i] = m_Ao_up;
                    }
                    var oreoIns       = Instantiate(Aoliao[i], new Vector3(0, i * 0.1f, 0), qua, oreoP.transform);
                    var oreoEventName = oreoIns.GetComponent <OreoEventName>().eventName;
                    eventList.Add(oreoEventName);
                }
                coroutine = PlayAllOreoAudio(0.15f);
                StartCoroutine(coroutine);

                settingCanvas.enabled = false;
                backCanvas.enabled    = true;

                VoidAR.GetInstance().startMarkerlessTracking();
            }
        }
示例#2
0
 public void RemoveTarget()
 {
     if (VoidAR.GetInstance().isMarkerExist(markerName))
     {
         VoidAR.GetInstance().removeTarget(markerName);
     }
 }
示例#3
0
    public void ModelButton(int indexPos)
    {
        int indexAsset = SceneAssetCtrl.instance.modelAssets[indexPos].transform.GetSiblingIndex();

        //print(indexAsset);
        if (SceneAssetCtrl.instance.modelAssets[indexPos].gameObject.activeSelf)
        {                                                                                                                                                                        //if pikachu active self
            GetClone(indexAsset);
            lastcallGO = transform.GetChild(indexAsset).name + $"{SceneAssetCtrl.ANGLEOPENIDENTIFIER}{SceneAssetCtrl.CLONEIDENTIFIER}{SceneAssetCtrl.ANGLECLOSEIDENTIFIER}" + j; //get the name of last 3d model posed
            LinkedSwitchAnim();
        }
        else
        {
            if (NoActiveObject())
            {
                VoidAR.GetInstance().startMarkerlessTracking();
                //MoveScript.play ();                                //for arrow raycast? //CONTINUE TOMORROW
                countpika++;
                transform.GetChild(indexAsset).gameObject.SetActive(true);
            }
            else
            {
                transform.GetChild(indexAsset).gameObject.SetActive(true);
                goodpose = Camera.main.ScreenToWorldPoint(new Vector3(Screen.width / 2, Screen.height / 2, 1));
                goodpose = new Vector3(goodpose.x, MarkerlessTrackingCustom.posYtrackingallgood, goodpose.z);

                transform.GetChild(indexAsset).localPosition = new Vector3(goodpose.x - transform.root.localPosition.x, goodpose.y - transform.root.localPosition.y, goodpose.z - transform.root.localPosition.z); //pose at the center of the screen
            }
            lastcallGO = transform.GetChild(indexAsset).name;
        }

        SceneAssetCtrl.modelSelected = transform.GetChild(indexAsset).gameObject;

        JoyOrNot();
    }
示例#4
0
    public void ModelSilkkeButton()
    {
        if ((SceneAssetCtrl.instance.modelSilkkeAsset != null))
        {
            int indexAsset = SceneAssetCtrl.instance.modelSilkkeAsset.transform.GetSiblingIndex();
            if (SceneAssetCtrl.instance.modelSilkkeAsset.gameObject.activeSelf)
            {
                GetClone(indexAsset);
                lastcallGO = transform.GetChild(indexAsset).name + $"{SceneAssetCtrl.ANGLEOPENIDENTIFIER}{SceneAssetCtrl.CLONEIDENTIFIER}{SceneAssetCtrl.ANGLECLOSEIDENTIFIER}" + j;
                if (j > 1)
                {
                    lastLastcallGo = transform.GetChild(indexAsset).name + $"{SceneAssetCtrl.ANGLEOPENIDENTIFIER}{SceneAssetCtrl.CLONEIDENTIFIER}{SceneAssetCtrl.ANGLECLOSEIDENTIFIER}" + (j - 1);
                    GameObject.Find(lastcallGO).transform.localPosition = GameObject.Find(lastLastcallGo).transform.localPosition; //don't get 2 avatars at the same position

                    if (GameObject.Find(lastcallGO).transform.Find(RotateScale.getAvatarName).transform.localPosition.y < 0)
                    { //waiting | don't fall or block in the ground
                      //print(GameObject.Find (lastcallGO).transform.Find(RotateScale.getAvatarName).transform.localPosition.y+"|test");
                        GameObject.Find(lastcallGO).transform.Find(RotateScale.getAvatarName).transform.localPosition = new Vector3(GameObject.Find(lastcallGO).transform.Find(RotateScale.getAvatarName).transform.localPosition.x, 0, GameObject.Find(lastcallGO).transform.Find(RotateScale.getAvatarName).transform.localPosition.z);
                    }

                    GameObject.Find(lastcallGO).transform.Translate(0, 0, 1); //don't get 2 avatars at the same position//MAYBE FOR JUST EDITOR
                }
                else
                {                                                                                                                 //don't fall
                  //GameObject.Find (lastcallGO).transform.localPosition = new Vector3 (GameObject.Find (lastcallGO).transform.localPosition.x, MarkerlessTracking.posYtrackingallgood, GameObject.Find (lastcallGO).transform.localPosition.z);
                    GameObject.Find(lastcallGO).transform.Find(RotateScale.getAvatarName).transform.localPosition = Vector3.zero; //WAITING
                                                                                                                                  //print (GameObject.Find (lastcallGO).transform.Find (RotateScale.getAvatarName).transform.localPosition + " testlCG");
                }


                LinkedSwitchAnim();
            }
            else
            {
                if (NoActiveObject())
                {
                    VoidAR.GetInstance().startMarkerlessTracking();
                    transform.GetChild(indexAsset).gameObject.SetActive(true);
                }
                else
                {
                    transform.GetChild(indexAsset).gameObject.SetActive(true);
                    goodpose = Camera.main.ScreenToWorldPoint(new Vector3(Screen.width / 2, Screen.height / 2, 1));
                    goodpose = new Vector3(goodpose.x, MarkerlessTrackingCustom.posYtrackingallgood, goodpose.z);

                    transform.GetChild(indexAsset).localPosition = new Vector3(goodpose.x - transform.root.localPosition.x, goodpose.y - transform.root.localPosition.y, goodpose.z - transform.root.localPosition.z); //pose at the center of the screen
                }
                lastcallGO    = transform.GetChild(indexAsset).name;
                getAvatarName = lastcallGO;
                //print (getAvatarName + "|tessssss");
            }

            JoyOrNot();
        }
    }
示例#5
0
 static void Init()
 {
     foreach (var obj in Selection.GetFiltered(typeof(UnityEngine.Object), SelectionMode.Assets))
     {
         string assetsPath = AssetDatabase.GetAssetPath(obj);
         if (Path.GetExtension(assetsPath) == ".jpg")
         {
             VoidAR.GetInstance().saveImageTargetDescriptor(assetsPath);
         }
     }
     AssetDatabase.Refresh();
 }
示例#6
0
    void OnGUI()
    {
        var btnHeight = Screen.height * 0.1f;
        var btnWidth  = btnHeight * 3.0f;
        var gap       = 20;

        GUI.skin.button.fontSize = 36;
        if (GUI.Button(new Rect(Screen.width - btnWidth, gap, btnWidth, btnHeight), "Start"))
        {
            VoidAR.GetInstance().startMarkerlessTracking();
        }
    }
示例#7
0
    static void Register()
    {
        QualitySettings.vSyncCount  = 0;
        Application.targetFrameRate = 60;
        Debug.Log("VoidARBridge");
#if UNITY_ANDROID
        VoidAR.GetInstance().helper = new VoidARAndroidHelper();
#elif UNITY_IOS
        VoidAR.GetInstance().helper = new VoidARiOSHelper();
#else
        VoidAR.GetInstance().helper = new VoidARDefaultHelper();
#endif
    }
示例#8
0
    public void Reset()
    {
        for (int b = 0; b < SceneAssetCtrl.instance.modelsToTrack.transform.childCount; ++b)
        { //Destroy clones
            if (SceneAssetCtrl.instance.modelsToTrack.transform.GetChild(b).name.Contains(SceneAssetCtrl.CLONEIDENTIFIER))
            {
                Destroy(SceneAssetCtrl.instance.modelsToTrack.transform.GetChild(b).gameObject);
            }
        }
        for (int b = 0; b < SceneAssetCtrl.instance.modelsToTrack.transform.childCount; ++b)
        {                                                                                             //reset and active false all existing objects
            SceneAssetCtrl.instance.modelsToTrack.transform.GetChild(b).localPosition = Vector3.zero; //to get good start tracking

            if ((SceneAssetCtrl.instance.modelSilkkeAsset != null) && SceneAssetCtrl.instance.modelsToTrack.transform.GetChild(b).gameObject.activeSelf&& SceneAssetCtrl.instance.modelsToTrack.transform.GetChild(b).name.Equals(SceneAssetCtrl.instance.modelSilkkeAsset.name))
            { //to reset Avatar values
                foreach (Transform tr in SceneAssetCtrl.instance.modelSilkkeAsset.transform)
                {
                    if (tr.name.Equals(RotateScale.getAvatarName))
                    {
                        tr.localPosition = Vector3.zero;
                        tr.localRotation = Quaternion.identity;
                        tr.localScale    = new Vector3(1f, 1f, 1f); //keep silkke on the ground
                        tr.localPosition = new Vector3(0f, 0f, 0f); //keep silkke on the ground
                    }
                }
            }
            SceneAssetCtrl.instance.modelsToTrack.transform.GetChild(b).gameObject.SetActive(false);
        }

        SceneAssetCtrl.instance.modelsToTrack.transform.root.localPosition = new Vector3(0, 0, 0); //to get good start, but maybe useless
        countreset++;

        if (SceneAssetCtrl.instance.modelImportPanel.gameObject.activeSelf)
        { //hide YourModels if reset
            SceneAssetCtrl.instance.modelImportPanel.gameObject.SetActive(false);

            SceneAssetCtrl.instance.modelAnimPanel.transform.localScale = Vector3.one;
        }

        if (SceneAssetCtrl.instance.silkkeConnectBtn != null)
        {
            SceneAssetCtrl.instance.silkkeConnectBtn.transform.gameObject.SetActive(true);  // show Silkke connector if you reset
        }

#if UNITY_EDITOR
#elif UNITY_ANDROID || UNITY_IOS
        VoidAR.GetInstance().resetMarkerless();
#endif
    }
示例#9
0
    public void ModelImportButton()
    {
        if (SceneAssetCtrl.instance.modelImportAsset != null)
        {
            int indexAsset = SceneAssetCtrl.instance.modelImportAsset.transform.GetSiblingIndex();

            //print(indexAsset);
            if (SceneAssetCtrl.instance.modelImportAsset.gameObject.activeSelf)
            {
                GetClone(indexAsset);
                lastcallGO = transform.GetChild(indexAsset).name + $"{SceneAssetCtrl.ANGLEOPENIDENTIFIER}{SceneAssetCtrl.CLONEIDENTIFIER}{SceneAssetCtrl.ANGLECLOSEIDENTIFIER}" + j;
                LinkedSwitchAnim();
                if (j == 1)
                {
                    mat = Instantiate(this.transform.Find(transform.GetChild(indexAsset).name).transform.GetChild(1).GetComponent <MeshRenderer>().material);  //get an instance of the material of the default model for first clone
                }
                else if (j > 1)
                {
                    mat = Instantiate(this.transform.Find(transform.GetChild(indexAsset).name + $"{SceneAssetCtrl.ANGLEOPENIDENTIFIER}{SceneAssetCtrl.CLONEIDENTIFIER}{SceneAssetCtrl.ANGLECLOSEIDENTIFIER}" + (j - 1)).transform.GetChild(1).GetComponent <MeshRenderer>().material); //get an instance of the material of the clone before for each clone
                }
                GameObject.Find(lastcallGO).transform.GetChild(1).GetComponent <MeshRenderer>().material = mat;
            }
            else
            {
                if (NoActiveObject())
                {
                    VoidAR.GetInstance().startMarkerlessTracking();
                    transform.GetChild(indexAsset).gameObject.SetActive(true);
                }
                else
                {
                    transform.GetChild(indexAsset).gameObject.SetActive(true);
                    goodpose = Camera.main.ScreenToWorldPoint(new Vector3(Screen.width / 2, Screen.height / 2, 1));
                    goodpose = new Vector3(goodpose.x, MarkerlessTrackingCustom.posYtrackingallgood, goodpose.z);                                                                                                      //WORK ON THAT LATER

                    transform.GetChild(indexAsset).localPosition = new Vector3(goodpose.x - transform.root.localPosition.x, goodpose.y - transform.root.localPosition.y, goodpose.z - transform.root.localPosition.z); //pose at the center of the screen
                }
                lastcallGO = transform.GetChild(indexAsset).name;



                Objbut.SetActive(true);

                Manageanimfilebut.transform.localScale = Vector3.zero;
            }

            JoyOrNot();
        }
    }
示例#10
0
    void OnGUI()
    {
        var btnHeight = Screen.height * 0.1f;
        var btnWidth  = btnHeight * 3.0f;
        var gap       = 20;

        GUI.skin.button.fontSize = 36;
        if (GUI.Button(new Rect(10, gap, btnWidth, btnHeight), "开启闪光"))
        {
            VoidAR.GetInstance().helper.SetFlashTorchMode(true);
        }
        if (GUI.Button(new Rect(10, Screen.height - btnHeight, btnWidth, btnHeight), "关闭闪光"))
        {
            VoidAR.GetInstance().helper.SetFlashTorchMode(false);
        }
    }
示例#11
0
    public void AddTarget()
    {
        //添加Marker1(识别图路径默认为StreamingAssets)
        var imageTarget1 = new GameObject("ImageTarget1");

        imageTarget1.transform.localPosition    = Vector3.zero;
        imageTarget1.transform.localEulerAngles = Vector3.zero;
        imageTarget1.transform.localScale       = Vector3.one;
        ImageTargetBehaviour marker1 = imageTarget1.AddComponent <ImageTargetBehaviour>();


        if (Application.platform == RuntimePlatform.Android || Application.platform == RuntimePlatform.IPhonePlayer)
        {
            marker1.storageType = VoidAR.StorageType.Assets;

            markerName = "1yuan.jpg";
        }
        else
        {
            //PC只支持绝对路径
            marker1.storageType = VoidAR.StorageType.Absolute;
            markerName          = Application.streamingAssetsPath + "/1yuan.jpg";
        }

        marker1.SetPath(markerName);



        var      cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
        Material mat  = (Material)Resources.Load("dynamicMaterial");

        cube.GetComponent <Renderer>().material = mat;
        cube.transform.localPosition            = new Vector3(0.0f, 0.25f, 0.0f);
        cube.transform.localEulerAngles         = Vector3.zero;
        cube.transform.localScale = new Vector3(0.5f, 0.5f, 0.5f);
        cube.transform.SetParent(imageTarget1.transform);

        VoidAR.GetInstance().addTargetNew(marker1, imageTarget1);

        //识别图支持绝对路径方式,比如Application.persistentDataPath)

        /*string markerPath = Path.Combine(Application.persistentDataPath, "test.jpg");
         * marker2.storageType = VoidAR.StorageType.Absolute;*/

        //完成添加
        VoidAR.GetInstance().FinishAddImageTarget();
    }
示例#12
0
    void OnGUI()
    {
        var btnHeight = Screen.height * 0.1f;
        var btnWidth  = btnHeight * 3f;
        var gap       = 20;

        if (GUI.Button(new Rect(Screen.width - btnWidth, gap, btnWidth, btnHeight), "Add Target"))
        {
            //Debug.Log(" add marker");
            AddTarget();
        }

        if (GUI.Button(new Rect(Screen.width - btnWidth, gap * 2 + btnHeight, btnWidth, btnHeight), "Clear Target"))
        {
            if (VoidAR.GetInstance().isMarkerExist(markerName))
            {
                VoidAR.GetInstance().removeTarget(markerName);
            }
        }
    }
示例#13
0
    // Update is called once per frame
    void Update()
    {
        VoidAR.GetInstance().helper.GetEnvironmentalLight(ref intensity);

        transform.GetComponent <Light>().intensity = (intensity + baseIntensityLight);
    }
示例#14
0
 void DoStartTracking()
 {
     VoidAR.GetInstance().startMarkerlessTracking();
     currentStreetPhoto.GetComponent <IsPhoto>().FadeingPicture();
 }
示例#15
0
 public void startMarkerlessTracking()
 {
     VoidAR.GetInstance().startMarkerlessTracking();
 }
示例#16
0
 void DoStartTracking()
 {
     VoidAR.GetInstance().startMarkerlessTracking();
 }