Advertisement
Guest User

CM3D2CameraUtility_改変の改変_20160103.Plugin.cs

a guest
Jan 2nd, 2016
3,811
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 26.69 KB | None | 0 0
  1. // CM3D2CameraUtility.Plugin v2.0.1.2 改変の改変(非公式)
  2. // 改変元 したらば改造スレその5 >>693
  3. // http://pastebin.com/NxzuFaUe
  4.  
  5. // 20160103
  6. // ・FPSモードでのカメラブレの補正機能追加
  7. // ・VIPでのFPSモード有効化
  8. // ・UIパネルを非表示にできるシーンの拡張
  9. //  (シーンレベル15)
  10.  
  11. // ■カメラブレ補正について
  12. // Fキー(デフォルトの場合)を一回押下でオリジナルのFPSモード、もう一回押下でブレ補正モード。
  13. // 再度押下でFPSモード解除。
  14.  
  15. // FPSモードの視点は男の頭の位置にカメラがセットされますが、
  16. // 男の動きが激しい体位では視線がガクガクと大きく揺れます。
  17. // 新しく追加したブレ補正モードではこの揺れを小さく抑えます。
  18. // ただし男の目の位置とカメラ位置が一致しなくなるので、男の透明度を上げていると
  19. // 体位によっては男の胴体の一部がちらちらと映り込みます。
  20. // これの改善のため首の描画を消そうと思いましたが、男モデルは「頭部」「体」の2種類しか
  21. // レンダリングされていないようで無理っぽかった。
  22. // 気になる人は男の透明度を下げてください。
  23.  
  24.  
  25. // CM3D2CameraUtility.Plugin v2.0.1.2 改変(非公式)
  26. // Original by k8PzhOFo0 (https://github.com/k8PzhOFo0/CM3D2CameraUtility.Plugin)
  27.  
  28. using System;
  29. using System.Reflection;
  30. using System.Linq;
  31. using UnityEngine;
  32. using UnityInjector;
  33. using UnityInjector.Attributes;
  34.  
  35. namespace CM3D2CameraUtility
  36. {
  37.     [PluginFilter("CM3D2x64"),
  38.     PluginFilter("CM3D2x86"),
  39.     PluginFilter("CM3D2VRx64"),
  40.     PluginName("Camera Utility"),
  41.     PluginVersion("2.0.1.2")]
  42.     public class CameraUtility : PluginBase
  43.     {
  44.         //移動関係キー設定
  45.         private KeyCode bgLeftMoveKey = KeyCode.LeftArrow;
  46.         private KeyCode bgRightMoveKey = KeyCode.RightArrow;
  47.         private KeyCode bgForwardMoveKey = KeyCode.UpArrow;
  48.         private KeyCode bgBackMoveKey = KeyCode.DownArrow;
  49.         private KeyCode bgUpMoveKey = KeyCode.PageUp;
  50.         private KeyCode bgDownMoveKey = KeyCode.PageDown;
  51.         private KeyCode bgLeftRotateKey = KeyCode.Delete;
  52.         private KeyCode bgRightRotateKey = KeyCode.End;
  53.         private KeyCode bgLeftPitchKey = KeyCode.Insert;
  54.         private KeyCode bgRightPitchKey = KeyCode.Home;
  55.         private KeyCode bgInitializeKey = KeyCode.Backspace;
  56.  
  57.         //VR用移動関係キー設定
  58.         private KeyCode bgLeftMoveKeyVR = KeyCode.J;
  59.         private KeyCode bgRightMoveKeyVR = KeyCode.L;
  60.         private KeyCode bgForwardMoveKeyVR = KeyCode.I;
  61.         private KeyCode bgBackMoveKeyVR = KeyCode.K;
  62.         private KeyCode bgUpMoveKeyVR = KeyCode.Alpha0;
  63.         private KeyCode bgDownMoveKeyVR = KeyCode.P;
  64.         private KeyCode bgLeftRotateKeyVR = KeyCode.U;
  65.         private KeyCode bgRightRotateKeyVR = KeyCode.O;
  66.         private KeyCode bgLeftPitchKeyVR = KeyCode.Alpha8;
  67.         private KeyCode bgRightPitchKeyVR = KeyCode.Alpha9;
  68.         private KeyCode bgInitializeKeyVR = KeyCode.Backspace;
  69.  
  70.         //カメラ操作関係キー設定
  71.         private KeyCode cameraLeftPitchKey = KeyCode.Period;
  72.         private KeyCode cameraRightPitchKey = KeyCode.Backslash;
  73.         private KeyCode cameraPitchInitializeKey = KeyCode.Slash;
  74.         private KeyCode cameraFoVPlusKey = KeyCode.RightBracket;
  75.  
  76.         //Equalsになっているが日本語キーボードだとセミコロン
  77.         private KeyCode cameraFoVMinusKey = KeyCode.Equals;
  78.  
  79.         //Semicolonになっているが日本語キーボードだとコロン
  80.         private KeyCode cameraFoVInitializeKey = KeyCode.Semicolon;
  81.  
  82.         //こっち見てキー設定
  83.         private KeyCode eyetoCamToggleKey = KeyCode.G;
  84.         private KeyCode eyetoCamChangeKey = KeyCode.T;
  85.  
  86.         //夜伽UI消しキー設定
  87.         private KeyCode hideUIToggleKey = KeyCode.Tab;
  88.  
  89.         //FPSモード切替キー設定
  90.         private KeyCode cameraFPSModeToggleKey = KeyCode.F;
  91.  
  92.         private enum modKey
  93.         {
  94.             Shift,
  95.             Alt,
  96.             Ctrl
  97.         }
  98.  
  99.         private Maid maid;
  100.         private CameraMain mainCamera;
  101.         private Transform mainCameraTransform;
  102.         private Transform maidTransform;
  103.         private Transform bg;
  104.         private GameObject manHead;
  105.         private GameObject uiObject;
  106.  
  107.         private float defaultFOV = 35f;
  108.         private bool allowUpdate = false;
  109.         private bool occulusVR = false;
  110.         private bool fpsMode = false;
  111.         private bool eyetoCamToggle = false;
  112.  
  113.         private float cameraRotateSpeed = 1f;
  114.         private float cameraFOVChangeSpeed = 0.25f;
  115.         private float floorMoveSpeed = 0.05f;
  116.         private float maidRotateSpeed = 2f;
  117.         private float fpsModeFoV = 60f;
  118.  
  119.         private int sceneLevel;
  120.         private int frameCount = 0;
  121.  
  122.         private float fpsOffsetForward = 0.02f;
  123.         private float fpsOffsetUp = -0.06f;
  124.         private float fpsOffsetRight = 0f;
  125.  
  126.         ////以下の数値だと男の目の付近にカメラが移動しますが
  127.         ////うちのメイドはデフォで顔ではなく喉元見てるのであんまりこっち見てくれません
  128.         //private float fpsOffsetForward = 0.1f;
  129.         //private float fpsOffsetUp = 0.12f;
  130.  
  131.         private Vector3 oldPos;
  132.         private Vector3 oldTargetPos;
  133.         private float oldDistance;
  134.         private float oldFoV;
  135.         private Quaternion oldRotation;
  136.  
  137.         private bool oldEyetoCamToggle;
  138.         private int eyeToCamIndex = 0;
  139.  
  140.         private bool uiVisible = true;
  141.         private GameObject profilePanel;
  142.  
  143.         //20160103 FPSカメラブレ補正用
  144.         private Vector3 cameraOffset = Vector3.zero;
  145.         private bool bFpsShakeCorrection = false;
  146.         //20160103 ここまで
  147.  
  148.         public void Awake()
  149.         {
  150.             GameObject.DontDestroyOnLoad(this);
  151.  
  152.             string path = Application.dataPath;
  153.             occulusVR = path.Contains("CM3D2VRx64");
  154.             if (occulusVR)
  155.             {
  156.                 bgLeftMoveKey = bgLeftMoveKeyVR;
  157.                 bgRightMoveKey = bgRightMoveKeyVR;
  158.                 bgForwardMoveKey = bgForwardMoveKeyVR;
  159.                 bgBackMoveKey = bgBackMoveKeyVR;
  160.                 bgUpMoveKey = bgUpMoveKeyVR;
  161.                 bgDownMoveKey = bgDownMoveKeyVR;
  162.                 bgLeftRotateKey = bgLeftRotateKeyVR;
  163.                 bgRightRotateKey = bgRightRotateKeyVR;
  164.                 bgLeftPitchKey = bgLeftPitchKeyVR;
  165.                 bgRightPitchKey = bgRightPitchKeyVR;
  166.                 bgInitializeKey = bgInitializeKeyVR;
  167.             }
  168.         }
  169.  
  170.         public void Start()
  171.         {
  172.             mainCameraTransform = Camera.main.gameObject.transform;
  173.         }
  174.  
  175.         public void OnLevelWasLoaded(int level)
  176.         {
  177.             sceneLevel = level;
  178.  
  179.             maid = GameMain.Instance.CharacterMgr.GetMaid(0);
  180.  
  181.             if (maid)
  182.             {
  183.                 maidTransform = maid.body0.transform;
  184.             }
  185.  
  186.             bg = GameObject.Find("__GameMain__/BG").transform;
  187.  
  188.             mainCamera = GameMain.Instance.MainCamera;
  189.  
  190.             if (maid && bg && maidTransform)
  191.             {
  192.                 allowUpdate = true;
  193.             }
  194.             else
  195.             {
  196.                 allowUpdate = false;
  197.             }
  198.  
  199.             if (occulusVR)
  200.             {
  201.                 uiObject = GameObject.Find("ovr_screen");
  202.             }
  203.             else
  204.             {
  205.                 uiObject = GameObject.Find("/UI Root/Camera");
  206.                 //20160103
  207.                 if (uiObject == null)
  208.                     uiObject = GameObject.Find("SystemUI Root/Camera");
  209.                 //20160103 ここまで
  210.                 defaultFOV = Camera.main.fieldOfView;
  211.             }
  212.  
  213.             if (level == 5)
  214.             {
  215.                 GameObject uiRoot = GameObject.Find("/UI Root");
  216.                 profilePanel = uiRoot.transform.Find("ProfilePanel").gameObject;
  217.             }
  218.             else if (level == 12)
  219.             {
  220.                 GameObject uiRoot = GameObject.Find("/UI Root");
  221.                 profilePanel = uiRoot.transform.Find("UserEditPanel").gameObject;
  222.             }
  223.             //20160103
  224.             else if (level == 15)
  225.             {
  226.                 //profilePanelが何をしているのかよくわからないので適当
  227.                 GameObject uiRoot = GameObject.Find("__GameMain__/SystemUI Root");
  228.                 profilePanel = uiRoot.transform.Find("ConfigPanel").gameObject;
  229.             }
  230.             cameraOffset = Vector3.zero;
  231.             bFpsShakeCorrection = false;
  232.             //20160103 ここまで
  233.  
  234.             fpsMode = false;
  235.     }
  236.  
  237.         private bool getModKeyPressing(modKey key)
  238.         {
  239.             switch (key)
  240.             {
  241.                 case modKey.Shift:
  242.                     return (Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift));
  243.  
  244.                 case modKey.Alt:
  245.                     return (Input.GetKey(KeyCode.LeftAlt) || Input.GetKey(KeyCode.RightAlt));
  246.  
  247.                 case modKey.Ctrl:
  248.                     return (Input.GetKey(KeyCode.LeftControl) || Input.GetKey(KeyCode.RightControl));
  249.  
  250.                 default:
  251.                     return false;
  252.             }
  253.         }
  254.  
  255.         private void SaveCameraPos()
  256.         {
  257.             oldPos = mainCamera.GetPos();
  258.             oldTargetPos = mainCamera.GetTargetPos();
  259.             oldDistance = mainCamera.GetDistance();
  260.             oldRotation = mainCameraTransform.rotation;
  261.             oldFoV = Camera.main.fieldOfView;
  262.         }
  263.  
  264.         private void LoadCameraPos()
  265.         {
  266.             mainCameraTransform.rotation = oldRotation;
  267.             mainCamera.SetPos(oldPos);
  268.             mainCamera.SetTargetPos(oldTargetPos, true);
  269.             mainCamera.SetDistance(oldDistance, true);
  270.             Camera.main.fieldOfView = oldFoV;
  271.         }
  272.  
  273.         private Vector3 GetYotogiPlayPosition()
  274.         {
  275.             var field = mainCamera.GetType().GetField("m_vCenter", BindingFlags.GetField | BindingFlags.NonPublic | BindingFlags.Instance);
  276.             return (Vector3)field.GetValue(mainCamera);
  277.         }
  278.  
  279.         private void FirstPersonCamera()
  280.         {
  281.             //20160103
  282.             if (sceneLevel == 14 || sceneLevel == 15)
  283.             //20160103 ここまで
  284.             //修正前コード
  285.             //if (sceneLevel == 14)
  286.             {
  287.                 if (!manHead)
  288.                 {
  289.                     if (frameCount == 60)
  290.                     {
  291.                         GameObject manExHead = GameObject.Find("__GameMain__/Character/Active/AllOffset/Man[0]");
  292.                         Transform[] manExHeadTransforms = manExHead ? manExHead.GetComponentsInChildren<Transform>() : new Transform[0];
  293.  
  294.                         Transform[] manHedas = manExHeadTransforms.Where(trans => trans.name.IndexOf("_SM_") > -1).ToArray();
  295.  
  296.                         foreach (Transform mh in manHedas)
  297.                         {
  298.                             GameObject smManHead = mh.gameObject;
  299.                             foreach (Transform smmh in smManHead.transform)
  300.                             {
  301.                                 if (smmh.name.IndexOf("ManHead") > -1)
  302.                                 {
  303.                                     manHead = smmh.gameObject;
  304.                                 }
  305.                             }
  306.                         }
  307.                         frameCount = 0;
  308.                     }
  309.                     else
  310.                     {
  311.                         frameCount++;
  312.                     }
  313.                 }
  314.                 else
  315.                 {
  316.                     if (occulusVR)
  317.                     {
  318.                         if (Input.GetKeyDown(cameraFPSModeToggleKey))
  319.                         {
  320.                             //    eyetoCamToggle = false;
  321.                             //    maid.EyeToCamera(Maid.EyeMoveType.無し, 0f);
  322.                             Vector3 localPos = uiObject.transform.localPosition;
  323.                             mainCamera.SetPos(manHead.transform.position);
  324.                             uiObject.transform.position = manHead.transform.position;
  325.                             uiObject.transform.localPosition = localPos;
  326.                         }
  327.                     }
  328.                     else
  329.                     {
  330.                         if (Input.GetKeyDown(cameraFPSModeToggleKey))
  331.                         {
  332.                             //20160103
  333.                             if (bFpsShakeCorrection)
  334.                             {
  335.                                 bFpsShakeCorrection = false;
  336.                                 fpsMode = false;
  337.                                 Console.WriteLine("FpsMode = Disable");
  338.                             }
  339.                             else if(fpsMode && !bFpsShakeCorrection)
  340.                             {
  341.                                 bFpsShakeCorrection = true;
  342.                                 Console.WriteLine("FpsMode = Enable : ShakeCorrection = Enable");
  343.                             }
  344.                             else
  345.                             {
  346.                                 fpsMode = true;
  347.                                 SaveCameraPos();
  348.                                 Console.WriteLine("FpsMode = Enable : ShakeCorrection = Disable");
  349.                             }
  350.                             //20160103 ここまで
  351.                             //修正前コード
  352.                             //fpsMode = !fpsMode;
  353.                             //Console.WriteLine("fpsmode = " + fpsMode.ToString());
  354.  
  355.                             if (fpsMode)
  356.                             {
  357.                                 //20160103
  358.                                 //SaveCameraPos();
  359.  
  360.                                 Camera.main.fieldOfView = fpsModeFoV;
  361.                                 eyetoCamToggle = false;
  362.                                 maid.EyeToCamera(Maid.EyeMoveType.無し, 0f);
  363.  
  364.                                 mainCameraTransform.rotation = Quaternion.LookRotation(-manHead.transform.up);
  365.  
  366.                                 manHead.renderer.enabled = false;
  367.                             }
  368.                             else
  369.                             {
  370.                                 Vector3 cameraTargetPosFromScript = GetYotogiPlayPosition();
  371.  
  372.                                 if (oldTargetPos != cameraTargetPosFromScript)
  373.                                 {
  374.                                     Console.WriteLine("Position Changed!");
  375.                                     oldTargetPos = cameraTargetPosFromScript;
  376.                                 }
  377.                                 manHead.renderer.enabled = true;
  378.  
  379.                                 LoadCameraPos();
  380.                                 eyetoCamToggle = oldEyetoCamToggle;
  381.                                 oldEyetoCamToggle = eyetoCamToggle;
  382.                             }
  383.                         }
  384.                         if (fpsMode)
  385.                         {
  386.                             Vector3 cameraTargetPosFromScript = GetYotogiPlayPosition();
  387.                             if (oldTargetPos != cameraTargetPosFromScript)
  388.                             {
  389.                                 Console.WriteLine("Position Changed!");
  390.                                 mainCameraTransform.rotation = Quaternion.LookRotation(-manHead.transform.up);
  391.                                 oldTargetPos = cameraTargetPosFromScript;
  392.                             }
  393.  
  394.                             //20160103
  395.                             Vector3 CameraPos = manHead.transform.position + manHead.transform.up * fpsOffsetUp + manHead.transform.right * fpsOffsetRight + manHead.transform.forward * fpsOffsetForward;
  396.                             if (bFpsShakeCorrection)
  397.                             {
  398.                                 cameraOffset = Vector3.Lerp(CameraPos, cameraOffset, 0.9f);
  399.                                 mainCamera.SetPos(cameraOffset);
  400.                                 mainCamera.SetTargetPos(cameraOffset, true);
  401.                                 mainCamera.SetDistance(0f, true);
  402.                             }
  403.                             else
  404.                             {
  405.                                 mainCamera.SetPos(CameraPos);
  406.                                 mainCamera.SetTargetPos(CameraPos, true);
  407.                                 mainCamera.SetDistance(0f, true);
  408.                             }
  409.                             //20160103 ここまで
  410.                             //修正前コード
  411.                             //mainCamera.SetPos(manHead.transform.position + manHead.transform.up * fpsOffsetUp + manHead.transform.right * fpsOffsetRight + manHead.transform.forward * fpsOffsetForward);
  412.                             //mainCamera.SetTargetPos(manHead.transform.position + manHead.transform.up * fpsOffsetUp + manHead.transform.right * fpsOffsetRight + manHead.transform.forward * fpsOffsetForward, true);
  413.                             //mainCamera.SetDistance(0f, true);
  414.                         }
  415.                     }
  416.                 }
  417.             }
  418.         }
  419.  
  420.         private void ExtendedCameraHandle()
  421.         {
  422.             if (!occulusVR)
  423.             {
  424.                 if (mainCameraTransform)
  425.                 {
  426.                     if (Input.GetKey(cameraFoVMinusKey))
  427.                     {
  428.                         Camera.main.fieldOfView += -cameraFOVChangeSpeed;
  429.                     }
  430.                     if (Input.GetKey(cameraFoVInitializeKey))
  431.                     {
  432.                         Camera.main.fieldOfView = defaultFOV;
  433.                     }
  434.                     if (Input.GetKey(cameraFoVPlusKey))
  435.                     {
  436.                         Camera.main.fieldOfView += cameraFOVChangeSpeed;
  437.                     }
  438.                     if (Input.GetKey(cameraLeftPitchKey))
  439.                     {
  440.                         mainCameraTransform.Rotate(0, 0, cameraRotateSpeed);
  441.                     }
  442.                     if (Input.GetKey(cameraPitchInitializeKey))
  443.                     {
  444.                         mainCameraTransform.eulerAngles = new Vector3(
  445.                             mainCameraTransform.rotation.eulerAngles.x,
  446.                             mainCameraTransform.rotation.eulerAngles.y,
  447.                             0f);
  448.                     }
  449.                     if (Input.GetKey(cameraRightPitchKey))
  450.                     {
  451.                         mainCameraTransform.Rotate(0, 0, -cameraRotateSpeed);
  452.                     }
  453.                 }
  454.             }
  455.         }
  456.  
  457.         private void FloorMover(float moveSpeed, float rotateSpeed)
  458.         {
  459.             if (bg)
  460.             {
  461.                 Vector3 cameraForward = mainCameraTransform.TransformDirection(Vector3.forward);
  462.                 Vector3 cameraRight = mainCameraTransform.TransformDirection(Vector3.right);
  463.                 Vector3 cameraUp = mainCameraTransform.TransformDirection(Vector3.up);
  464.  
  465.                 Vector3 direction = Vector3.zero;
  466.  
  467.                 if (Input.GetKey(bgLeftMoveKey))
  468.                 {
  469.                     direction += new Vector3(cameraRight.x, 0f, cameraRight.z) * moveSpeed;
  470.                 }
  471.                 if (Input.GetKey(bgRightMoveKey))
  472.                 {
  473.                     direction += new Vector3(cameraRight.x, 0f, cameraRight.z) * -moveSpeed;
  474.                 }
  475.                 if (Input.GetKey(bgBackMoveKey))
  476.                 {
  477.                     direction += new Vector3(cameraForward.x, 0f, cameraForward.z) * moveSpeed;
  478.                 }
  479.                 if (Input.GetKey(bgForwardMoveKey))
  480.                 {
  481.                     direction += new Vector3(cameraForward.x, 0f, cameraForward.z) * -moveSpeed;
  482.                 }
  483.                 if (Input.GetKey(bgUpMoveKey))
  484.                 {
  485.                     direction += new Vector3(0f, cameraUp.y, 0f) * -moveSpeed;
  486.                 }
  487.                 if (Input.GetKey(bgDownMoveKey))
  488.                 {
  489.                     direction += new Vector3(0f, cameraUp.y, 0f) * moveSpeed;
  490.                 }
  491.  
  492.                 //bg.position += direction;
  493.                 bg.localPosition += direction;
  494.  
  495.                 if (Input.GetKey(bgLeftRotateKey))
  496.                 {
  497.                     bg.RotateAround(maidTransform.transform.position, Vector3.up, rotateSpeed);
  498.                 }
  499.                 if (Input.GetKey(bgRightRotateKey))
  500.                 {
  501.                     bg.RotateAround(maidTransform.transform.position, Vector3.up, -rotateSpeed);
  502.                 }
  503.                 if (Input.GetKey(bgLeftPitchKey))
  504.                 {
  505.                     bg.RotateAround(maidTransform.transform.position, new Vector3(cameraForward.x, 0f, cameraForward.z), rotateSpeed);
  506.                 }
  507.                 if (Input.GetKey(bgRightPitchKey))
  508.                 {
  509.                     bg.RotateAround(maidTransform.transform.position, new Vector3(cameraForward.x, 0f, cameraForward.z), -rotateSpeed);
  510.                 }
  511.  
  512.                 if (getModKeyPressing(modKey.Alt) && (Input.GetKey(bgLeftRotateKey) || Input.GetKey(bgRightRotateKey)))
  513.                 {
  514.                     bg.RotateAround(maidTransform.position, Vector3.up, -bg.rotation.eulerAngles.y);
  515.                 }
  516.                 if (getModKeyPressing(modKey.Alt) && (Input.GetKey(bgLeftPitchKey) || Input.GetKey(bgRightPitchKey)))
  517.                 {
  518.                     bg.RotateAround(maidTransform.position, Vector3.forward, -bg.rotation.eulerAngles.z);
  519.                     bg.RotateAround(maidTransform.position, Vector3.right, -bg.rotation.eulerAngles.x);
  520.                 }
  521.                 if (getModKeyPressing(modKey.Alt) && (Input.GetKey(bgLeftMoveKey) || Input.GetKey(bgRightMoveKey) || Input.GetKey(bgBackMoveKey) || Input.GetKey(bgForwardMoveKey)))
  522.                 {
  523.                     bg.localPosition = new Vector3(0f, bg.localPosition.y, 0f);
  524.                 }
  525.                 if (getModKeyPressing(modKey.Alt) && (Input.GetKey(bgUpMoveKey) || Input.GetKey(bgDownMoveKey)))
  526.                 {
  527.                     bg.localPosition = new Vector3(bg.localPosition.x, 0f, bg.localPosition.z);
  528.                 }
  529.                 if (Input.GetKeyDown(bgInitializeKey))
  530.                 {
  531.                     bg.localPosition = Vector3.zero;
  532.                     bg.RotateAround(maidTransform.position, Vector3.up, -bg.rotation.eulerAngles.y);
  533.                     bg.RotateAround(maidTransform.position, Vector3.right, -bg.rotation.eulerAngles.x);
  534.                     bg.RotateAround(maidTransform.position, Vector3.forward, -bg.rotation.eulerAngles.z);
  535.                     bg.RotateAround(maidTransform.position, Vector3.up, -bg.rotation.eulerAngles.y);
  536.                 }
  537.             }
  538.         }
  539.  
  540.         private void LookAtThis()
  541.         {
  542.             if (Input.GetKeyDown(eyetoCamChangeKey))
  543.             {
  544.                 if (eyeToCamIndex == Enum.GetNames(typeof(Maid.EyeMoveType)).Length - 1)
  545.                 {
  546.                     eyetoCamToggle = false;
  547.                     eyeToCamIndex = 0;
  548.                 }
  549.                 else
  550.                 {
  551.                     eyeToCamIndex++;
  552.                     eyetoCamToggle = true;
  553.                 }
  554.                 maid.EyeToCamera((Maid.EyeMoveType)eyeToCamIndex, 0f);
  555.                 Console.WriteLine("EyeToCam:{0}", eyeToCamIndex);
  556.             }
  557.  
  558.             if (Input.GetKeyDown(eyetoCamToggleKey))
  559.             {
  560.                 eyetoCamToggle = !eyetoCamToggle;
  561.                 //Console.WriteLine("Eye to Cam : {0}", eyetoCamToggle);
  562.                 if (!eyetoCamToggle)
  563.                 {
  564.                     maid.EyeToCamera(Maid.EyeMoveType.無し, 0f);
  565.                     eyeToCamIndex = 0;
  566.                     Console.WriteLine("EyeToCam:{0}", eyeToCamIndex);
  567.                 }
  568.                 else
  569.                 {
  570.                     maid.EyeToCamera(Maid.EyeMoveType.目と顔を向ける, 0f);
  571.                     eyeToCamIndex = 5;
  572.                     Console.WriteLine("EyeToCam:{0}", eyeToCamIndex);
  573.                 }
  574.             }
  575.         }
  576.  
  577.         private void HideUI()
  578.         {
  579.             if (Input.GetKeyDown(hideUIToggleKey))
  580.             {
  581.                 //20160103
  582.                 if (sceneLevel == 5 || sceneLevel == 14 || sceneLevel == 15)
  583.                 //20160103 ここまで
  584.                 //修正前コード
  585.                 //if (sceneLevel == 5 || sceneLevel == 14)
  586.                 {
  587.                     var field = GameMain.Instance.MainCamera.GetType().GetField("m_eFadeState", BindingFlags.GetField | BindingFlags.NonPublic | BindingFlags.Instance);
  588.  
  589.                     int i = (int)field.GetValue(mainCamera);
  590.                     //Console.WriteLine("FadeState:{0}", i);
  591.                     if (i == 0)
  592.                     {
  593.                         uiVisible = !uiVisible;
  594.                         if (uiObject)
  595.                         {
  596.                             uiObject.SetActive(uiVisible);
  597.                         }
  598.                     }
  599.                     Console.WriteLine("UIVisible:{0}", uiVisible);
  600.                 }
  601.             }
  602.         }
  603.  
  604.         public void Update()
  605.         {
  606.             if (sceneLevel == 5)
  607.             {
  608.                 if (profilePanel.activeSelf)
  609.                 {
  610.                     allowUpdate = false;
  611.                 }
  612.                 else
  613.                 {
  614.                     allowUpdate = true;
  615.                 }
  616.             }
  617.             else if (sceneLevel == 12)
  618.             {
  619.                 if (profilePanel.activeSelf)
  620.                 {
  621.                     allowUpdate = false;
  622.                 }
  623.                 else
  624.                 {
  625.                     allowUpdate = true;
  626.                 }
  627.             }
  628.             //20160103
  629.             else if (sceneLevel == 15)
  630.             {
  631.                 if (profilePanel.activeSelf)
  632.                 {
  633.                     allowUpdate = false;
  634.                 }
  635.                 else
  636.                 {
  637.                     allowUpdate = true;
  638.                 }
  639.             }
  640.             //20160103 ここまで
  641.  
  642.             if (allowUpdate)
  643.             {
  644.                 float moveSpeed = floorMoveSpeed;
  645.                 float rotateSpeed = maidRotateSpeed;
  646.  
  647.                 if (getModKeyPressing(modKey.Shift))
  648.                 {
  649.                     moveSpeed *= 0.1f;
  650.                     rotateSpeed *= 0.1f;
  651.                 }
  652.  
  653.                 FirstPersonCamera();
  654.  
  655.                 LookAtThis();
  656.  
  657.                 FloorMover(moveSpeed, rotateSpeed);
  658.  
  659.                 if (!occulusVR)
  660.                 {
  661.                     ExtendedCameraHandle();
  662.  
  663.                     HideUI();
  664.                 }
  665.             }
  666.         }
  667.     }
  668. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement