void Start() { Transform control = GameObject.Find("PlayerRobot").transform; MultiContolBase playerRobot = new MultiContolBase(player.transform, control.Find("Pos")); player.SetTargetControl(control, playerRobot); playerRobot.Init(); playerRobot.SetCameraHands(player.HUDCamera, player.rightHand, player.leftHand); multiControlsDic.Add(control.name, playerRobot); control = GameObject.Find("SpiralElevator").transform; SpiralElevatorControl spiralElevatorControl = new SpiralElevatorControl(control, control.Find("Pos")); spiralElevatorControl.Init(); spiralElevatorControl.SetCameraHands(player.HUDCamera, player.leftHand, player.rightHand); multiControlsDic.Add(control.name, spiralElevatorControl); control = GameObject.Find("RoboArm").transform; RoboArmControl roboArmControl = new RoboArmControl(control, control.Find("Pos")); roboArmControl.Init(); roboArmControl.SetCameraHands(player.HUDCamera, player.leftHand, player.rightHand); roboArmControl.GiveInputAction(player.SqueezeAction); multiControlsDic.Add(control.name, roboArmControl); control = GameObject.Find("Drone").transform; DroneControl droneControl = new DroneControl(control, control.Find("Pos")); droneControl.Init(); droneControl.SetCameraHands(player.HUDCamera, player.leftHand, player.rightHand); droneControl.GiveInputAction(player.SqueezeAction); multiControlsDic.Add(control.name, droneControl); }
public void SetTargetControl(Transform player, MultiContolBase control) { playerRobot = new PlayerRobot(); playerRobot.SetCameraHands(HUDCamera, rightHand, leftHand); playerRobot.Init(player); targetControl = control; //player.gameObject.SetActive(false); }
void TransDetect() { if (!isTransTouchDown) { if (transAction.GetStateDown(SteamVR_Input_Sources.LeftHand)) { transHand = SteamVR_Input_Sources.LeftHand; isTransTouchDown = true; curTransHand = leftHand; transLineRender.enabled = true; RaycastHit hit; Physics.Raycast(curTransHand.position, curTransHand.forward, out hit, transDist, transMask); //if (hit.transform != null) //{ // //if (addLineObject == null) // //{ // // addLineObject = hit.transform.gameObject; // // outLine.addline(addLineObject); // //} //} //else //{ // //if (addLineObject != null) outLine.removeLine(addLineObject); //} } else if (transAction.GetStateDown(SteamVR_Input_Sources.RightHand)) { transHand = SteamVR_Input_Sources.RightHand; isTransTouchDown = true; curTransHand = rightHand; transLineRender.enabled = true; RaycastHit hit; Physics.Raycast(curTransHand.position, curTransHand.forward, out hit, transDist, transMask); //if (hit.transform != null) //{ // //if (addLineObject == null) { // // addLineObject = hit.transform.gameObject; // // outLine.addline(addLineObject); // //} //} //else { // if(addLineObject != null) outLine.removeLine(addLineObject); //} } if (Input.GetKeyDown(KeyCode.Z)) { goTrans = true; cameraOffset = HUDCamera.localPosition; targetControl = GameManager.Instance.LookUpMultiControl("SpiralElevator"); playerRobot.transform.parent = null; playerRobot.gameObject.SetActive(true); } if (Input.GetKeyDown(KeyCode.X)) { goTrans = true; cameraOffset = HUDCamera.localPosition; targetControl = GameManager.Instance.LookUpMultiControl("RoboArm"); playerRobot.transform.parent = null; playerRobot.gameObject.SetActive(true); } if (Input.GetKeyDown(KeyCode.C)) { goTrans = true; cameraOffset = HUDCamera.localPosition; targetControl = GameManager.Instance.LookUpMultiControl("Drone"); playerRobot.transform.parent = null; playerRobot.gameObject.SetActive(true); } if (Input.GetKeyDown(KeyCode.Space)) { goTrans = true; cameraOffset = HUDCamera.localPosition; targetControl = GameManager.Instance.LookUpMultiControl("PlayerRobot"); playerRobot.transform.gameObject.SetActive(false); } } else { transLineRender.positionCount = 2; transLineRender.SetPosition(0, curTransHand.position); transLineRender.SetPosition(1, curTransHand.position + transDist * curTransHand.forward); if (transAction.GetStateUp(transHand)) { isTransTouchDown = false; transLineRender.enabled = false; RaycastHit hit; Physics.Raycast(curTransHand.position, curTransHand.forward, out hit, transDist, transMask); if (hit.transform != null) { Debug.Log(hit.transform.name); //if (addLineObject != null) outLine.removeLine(addLineObject); targetControl = GameManager.Instance.LookUpMultiControl(hit.transform.parent.name); goTrans = true; blackOut.enabled = true; //SteamVR_Fade.Start(Color.clear, 0); //SteamVR_Fade.Start(Color.black, 2.0f); if (roboMod) { //HUDCamera.GetComponent<Camera>().enabled = false; //UnityEngine.XR.InputTracking.disablePositionalTracking = true; transMask = oringinMask; playerRobot.transform.localPosition = new Vector3(HUDCamera.localPosition.x, 0, HUDCamera.localPosition.z); playerRobot.transform.rotation = Quaternion.LookRotation(new Vector3(HUDCamera.forward.x, 0, HUDCamera.forward.z), Vector3.up); //playerRobot.transform.parent = null; playerRobot.gameObject.SetActive(true); //if (targetControl is RoboArmControl) playerRobot.canFall = true; } else { //HUDCamera.GetComponent<Camera>().enabled = enabled; //UnityEngine.XR.InputTracking.disablePositionalTracking = false; transMask = otherControlMask; playerRobot.transform.gameObject.SetActive(false); if (targetControl is RoboArmControl) { playerRobot.canFall = false; } } } } } }