Esempio n. 1
0
    /************************************************************
    * ロボットの位置等の初期化
    ************************************************************/
    void RobotInit()
    {
        switch (init_state)
        {
        case 0:
            Main.NotActivateUI();
            robot_alpha_default         = ColorController.robot_alpha;
            ColorController.robot_alpha = 0.0f;
            ColorController.ChangeRobotColors(ColorController.safety_color);
            arrow3D.SetActive(false);
            init_state = 1;
            break;

        case 1:
            List <DetectedPlane> planes = new List <DetectedPlane>();
            Session.GetTrackables <DetectedPlane>(planes, TrackableQueryFilter.All);
            foreach (DetectedPlane plane in planes)
            {
                if (plane.PlaneType == DetectedPlaneType.HorizontalUpwardFacing)
                {
                    base_plane = plane;

                    transform.position = plane.CenterPose.position;

                    Vector3 camera_pos = Camera.main.transform.position;
                    Vector3 robot_pos  = transform.position;
                    float   rot2robot  = Mathf.Atan2((robot_pos.x - camera_pos.x) * -1, robot_pos.z - camera_pos.z);
                    rot2robot = rot2robot / Mathf.PI * 180.0f;
                    Vector3 robot_euler = transform.eulerAngles;
                    robot_euler.y        -= rot2robot + 20.0f;
                    transform.eulerAngles = robot_euler;

                    ArrowChange();

                    ColorController.robot_alpha = robot_alpha_default;
                    ColorController.ChangeRobotColors(ColorController.safety_color);
                    Main.NormalMode();
                    arrow3D.SetActive(true);
                    init_state = 2;
                    break;
                }
            }
            break;
        }
    }