示例#1
0
    private void TrackingPlane()
    {
        Touch touch = Input.GetTouch(0);

        if (touch.phase != TouchPhase.Ended)
        {
            return;
        }

        if (raycastManager.Raycast(touch.position, raycastHitList, TrackableType.PlaneWithinPolygon))
        {
            Pose hitPose = raycastHitList[0].pose;

            if (obj == null)
            {
                uiManager.DisplayDebug("Raycast 成功");

                field.SetActive(true);

                currentARState = ARState.Ready;
            }
            else
            {
                uiManager.DisplayDebug("Raycast 済");
                obj.transform.position = hitPose.position;
            }
        }
        else
        {
            uiManager.DisplayDebug("Raycast 失敗");
        }
    }
示例#2
0
    private void Update()
    {
        if (currentARState == ARState.None)
        {
            return;
        }

        if (Input.touchCount < 0)
        {
            return;
        }

        if (currentARState == ARState.Tracking)
        {
            //平面感知
            TrackingPlane();
        }
        else if (currentARState == ARState.Ready)
        {
            currentARState = ARState.Wait;
            uiManager.DisplayDebug(currentARState.ToString());

            //ゲーム開始の準備
            StartCoroutine(PraparateGameReady());
        }
        else if (currentARState == ARState.Play)
        {
            uiManager.DisplayDebug(currentARState.ToString());
        }
    }
示例#3
0
    private IEnumerator PraparateGameReady()
    {
        //TODO 準備処理を書く

        yield return(new WaitForSeconds(2.0f));

        currentARState = ARState.Play;

        uiManager.DisplayDebug(currentARState.ToString());

        if (isARDebug == true)
        {
            StartCoroutine(fieldAutoScroller.StartFieldScroll());
        }

        //平面検知を非表示
        planeDetection.SetAllPlaneActivate(false);
    }
示例#4
0
    protected override void MakeFSM()
    {
        HomeState homeState = new HomeState();

        homeState.AddTransition(TRANSITION.TRANSITION_TO_ARSTATE, STATE_ID.AR_STATE);

        ARState arState = new ARState();

        arState.AddTransition(TRANSITION.TRANSITION_TO_HOMESTATE, STATE_ID.HOME_STATE);
        arState.AddTransition(TRANSITION.TRANSITION_TO_VIDEOTUTORIALSTATE, STATE_ID.VIDEO_TUTORIAL_STATE);

        VideoTutorialState videoState = new VideoTutorialState();

        videoState.AddTransition(TRANSITION.TRANSITION_TO_ARSTATE, STATE_ID.AR_STATE);

        _FSM = new FSMSystem(this);
        _FSM.AddState(homeState);
        _FSM.AddState(arState);
        _FSM.AddState(videoState);

        base.MakeFSM();
    }