Example #1
0
    //将重力感应转化成ROTATION_MODE的物理值
    public string SelfAdJustRotationModeWithAcceleration()
    {
        var g = Input.acceleration;
        FU_ROTATION_MODE v = FU_ROTATION_MODE.ROT_0;
        string           s = "";

        if (Mathf.Abs(g.x) > Mathf.Abs(g.y))
        {
            if (g.x > 0.5f)
            {
                s = "90";
                v = FU_ROTATION_MODE.ROT_90;
            }
            else if (g.x < -0.5f)
            {
                s = "270";
                v = FU_ROTATION_MODE.ROT_270;
            }
            else
            {
                s = "Default 0";
                v = FU_ROTATION_MODE.ROT_0;
            }
        }
        else
        {
            if (g.y > 0.5f)
            {
                s = "180";
                v = FU_ROTATION_MODE.ROT_180;
            }
            else if (g.y < -0.5f)
            {
                s = "0";
                v = FU_ROTATION_MODE.ROT_0;
            }
            else
            {
                s = "Default 0";
                v = FU_ROTATION_MODE.ROT_0;
            }
        }
        s += " | Set " + SelfAdJustRotationMode(v);
        return(s);
    }
Example #2
0
    //设置AI跟踪方向
    public string SelfAdJustRotationMode(FU_ROTATION_MODE eyeViewRot = FU_ROTATION_MODE.ROT_0)
    {
        var rot = eyeViewRot;

        if (CameraManager.Instance.IsInitialize)
        {
            if (CameraManager.Instance.Type == FaceUnity.ICameraType.Legacy)
            {
#if UNITY_EDITOR || UNITY_STANDALONE
                rot = (FU_ROTATION_MODE)(((int)FU_ROTATION_MODE.ROT_180 - (int)eyeViewRot + 4) % 4);
#elif UNITY_ANDROID
                if (CameraManager.Instance.IsFrontFacing)
                {
                    rot = (FU_ROTATION_MODE)(((int)FU_ROTATION_MODE.ROT_90 - (int)eyeViewRot + 4) % 4);
                }
                else
                {
                    rot = (FU_ROTATION_MODE)(((int)FU_ROTATION_MODE.ROT_270 + (int)eyeViewRot) % 4);
                }
#elif UNITY_IOS
                if (CameraManager.Instance.IsFrontFacing)
                {
                    rot = (FU_ROTATION_MODE)(((int)FU_ROTATION_MODE.ROT_270 - (int)eyeViewRot + 4) % 4);
                }
                else
                {
                    rot = (FU_ROTATION_MODE)(((int)FU_ROTATION_MODE.ROT_270 + (int)eyeViewRot) % 4);
                }
#endif
            }
            else
            {
#if UNITY_EDITOR || UNITY_STANDALONE
                rot = (FU_ROTATION_MODE)(((int)FU_ROTATION_MODE.ROT_0 + (int)eyeViewRot) % 4);
#elif UNITY_ANDROID
                if (CameraManager.Instance.IsFrontFacing)
                {
                    rot = (FU_ROTATION_MODE)(((int)FU_ROTATION_MODE.ROT_90 + (int)eyeViewRot) % 4);
                }
                else
                {
                    rot = (FU_ROTATION_MODE)(((int)FU_ROTATION_MODE.ROT_270 - (int)eyeViewRot + 4) % 4);
                }
#elif UNITY_IOS
                if (CameraManager.Instance.IsFrontFacing)
                {
                    rot = (FU_ROTATION_MODE)(((int)FU_ROTATION_MODE.ROT_270 + (int)eyeViewRot) % 4);
                }
                else
                {
                    rot = (FU_ROTATION_MODE)(((int)FU_ROTATION_MODE.ROT_270 - (int)eyeViewRot + 4) % 4);
                }
#endif
            }
        }


        FaceunityWorker.fuSetDefaultRotationMode(rot);

        string s = "";
        switch (rot)
        {
        case FU_ROTATION_MODE.ROT_0:
            s = "0";
            break;

        case FU_ROTATION_MODE.ROT_90:
            s = "90";
            break;

        case FU_ROTATION_MODE.ROT_180:
            s = "180";
            break;

        case FU_ROTATION_MODE.ROT_270:
            s = "270";
            break;
        }
        return(s);
    }