public Vector3 menuCamUpdate(PluginCameraHelper helper) { Vector3 pos = Vector3.SmoothDamp(WorldCam.position, camPos, ref camPosVel, .5f); camLookPos = Vector3.SmoothDamp(camLookPos, camLook, ref camLookVel, .5f); Quaternion rot = Quaternion.LookRotation(camLookPos - WorldCam.position); helper.UpdateCameraPose(pos, rot); return(camLookPos); }
public void OnActivate(PluginCameraHelper helper) { _helper = helper; //got my cam stuff. BS = new BeatSaberStatus(); rig = new RigCam(); //rig.worlCam = helper.manager.camera.worldCamera.transform; rig.worlCam = helper.behaviour.manager.camera.transform; men = new menuCam(); //men.WorldCam = helper.manager.camera.worldCamera.transform; men.WorldCam = helper.behaviour.manager.camera.transform; CheckSettings(); if (overlayactive == true) { try { //getting my overlay string assetPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); string dp = System.IO.Path.Combine(assetPath, @"LIV\Plugins\CameraBehaviours\MoriBScam\overlay.yap"); AssetBundle myasset = AssetBundle.LoadFromFile(dp); var prefab = myasset.LoadAsset <GameObject>("Overlay"); myasset.Unload(false); //Transform c = _helper.manager.camera.worldCamera.transform; Transform c = _helper.behaviour.manager.camera.transform; overlay = UnityEngine.Object.Instantiate(prefab); overlay.transform.parent = c; overlay.transform.localPosition = new Vector3((overlayOffsetX + 0.0f), (overlayOffsetY + .05f), (1.0f)); float sc = overlayScale * 0.1f; overlay.transform.localScale = new Vector3(sc, sc, sc); overlay.transform.rotation = c.rotation; overlay.transform.Rotate(-90.0f, 0f, 0f); overlayCon = overlay.AddComponent <MorichalionStuff.OverlayController>(); overlayCon._helper = helper; overlayCon.position = overlay.transform.localPosition; overlayCon.scale = overlay.transform.localScale; overlayCon.BS = BS; //overlay.SetActive(false); } catch { debug("couldn't instantiate overlay"); overlayactive = false; } } }
// Called when the Plugin is selected public void OnActivate(PluginCameraHelper helper) { PluginLog.Log("ActionCameraPlugin", "OnActivate"); timerHelper = new TimerHelper(); ConfigUtility utility = new ConfigUtility(_settings.configurationName); cameraDirector = new ActionCameraDirector(utility.Config, helper, ref timerHelper); AvatarManager avatarManager = Resources.FindObjectsOfTypeAll <AvatarManager>().FirstOrDefault(); avatarRefSignal = avatarManager?.GetPrivateField <AvatarReferenceSignal>("_avatarInstantiated"); avatarRefSignal?.OnChanged.AddListener(OnAvatarChanged); OnAvatarChanged(avatarRefSignal?.Value); }
public ActionCameraDirector(ActionCameraConfig pluginSettings, PluginCameraHelper helper, ref TimerHelper timerHelper) { this.player = new LivPlayerEntity(helper, ref timerHelper); this.timerHelper = timerHelper; this.cameraHelper = helper; this.pluginSettings = pluginSettings; randomizer = new System.Random(); player.SetOffsets(pluginSettings.forwardHorizontalOffset, pluginSettings.forwardVerticalOffset, pluginSettings.forwardDistance); OverShoulderCamera = new ShoulderActionCamera(pluginSettings); FullBodyActionCamera = new FullBodyActionCamera(pluginSettings); FPSCamera = new FPSCamera(pluginSettings, 0.2f); TacticalCamera = new TopDownActionCamera(pluginSettings, 0.6f, 6f); SetCamera(OverShoulderCamera); }
//private Vector3 CameraPosition; //LocalPosition of the camera in relation to the rigCamObject. public Vector3 PositionUpdate(PluginCameraHelper camhelper) { waiting -= Time.deltaTime; if (waiting < 0.0f) { waiting += UnityEngine.Random.Range(timeMin, timeMax); CameraTargetPosition = CameraLooks[UnityEngine.Random.Range(0, CameraLooks.Count)]; } CameraLook.transform.position = Vector3.SmoothDamp(CameraLook.transform.position, CameraTargetPosition, ref CameraTargetPositionVelocity, responsiveness); //get floor position of the head. Vector3 headFloorPoint = new Vector3(camhelper.playerHead.position.x, 0.0f, camhelper.playerHead.position.z); Vector3 aheaddistance = new Vector3(0.0f, 0.0f, 1.0f); Vector3 ahead = camhelper.playerHead.TransformPoint(aheaddistance); ahead = new Vector3(ahead.x, 0.0f, ahead.z);//Directional vector from headfloorpoint. FloorReference.transform.position = headFloorPoint; FloorReference.transform.rotation = Quaternion.LookRotation(ahead - headFloorPoint); //update the look point. RigCamObject.transform.position = Vector3.SmoothDamp(RigCamObject.transform.position, FloorReference.transform.TransformPoint(RigCamObjectPositionGoal), ref RigCamObjectVelocity, responsiveness); RigCamObject.transform.rotation = Quaternion.LookRotation(CameraLook.transform.position - RigCamObject.transform.position); //orlCam.position = UpdateCameraWithThis.transform.position; //worlCam.rotation = UpdateCameraWithThis.transform.rotation; camhelper.UpdateCameraPose(UpdateCameraWithThis.transform.position, UpdateCameraWithThis.transform.rotation); return(CameraLook.transform.position); }
public LivPlayerEntity(PluginCameraHelper helper, ref TimerHelper timerHelper) { this.pluginCameraHelper = helper; this.timerHelper = timerHelper; }
public void OnActivate(PluginCameraHelper helper) { if (instance == null) { instance = this; } this.helper = helper; wrapper = new GameObject("CustomCameraPathPluginWrapper").transform; GameObject nameObject = new GameObject("PathName"); nameObject.transform.position = new Vector3(0, 1.5f, 1); nameObject.transform.localScale = new Vector3(.03f, .03f, .03f); nameObject.transform.parent = wrapper; pathNameDisplay = nameObject.AddComponent <TextMeshPro>(); pathNameDisplay.fontSize = 32; pathNameDisplay.alignment = TextAlignmentOptions.Center; pathNameDisplay.text = "No paths found!"; string pathDirectory = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "LIV", "CustomCameraPaths"); if (!Directory.Exists(pathDirectory)) { return; } paths = Directory.GetFiles(pathDirectory, "*.path"); if (paths.Length == 0) { return; } GameObject previousObject = new GameObject("PreviousText"); previousObject.transform.position = new Vector3(-.25f, 1.25f, .75f); previousObject.transform.localScale = new Vector3(.03f, .03f, .03f); previousObject.transform.parent = wrapper; previous = previousObject.AddComponent <TextMeshPro>(); previous.fontSize = 28; previous.alignment = TextAlignmentOptions.Center; previous.text = "<<"; previousButton = new GameObject("PreviousButton"); previousButton.AddComponent <BoxCollider>(); previousButton.transform.localScale = new Vector3(.05f, .05f, .01f); previousButton.transform.position = previousObject.transform.position; previousButton.transform.parent = wrapper; InputObject previousInput = previousButton.AddComponent <InputObject>(); previousInput.direction = -1; previousInput.textMesh = previous; GameObject nextObject = new GameObject("NextText"); nextObject.transform.position = new Vector3(.25f, 1.25f, .75f); nextObject.transform.localScale = new Vector3(.03f, .03f, .03f); nextObject.transform.parent = wrapper; next = nextObject.AddComponent <TextMeshPro>(); next.fontSize = 28; next.alignment = TextAlignmentOptions.Center; next.text = ">>"; nextButton = new GameObject("NextButton"); nextButton.AddComponent <BoxCollider>(); nextButton.transform.localScale = new Vector3(.05f, .05f, .01f); nextButton.transform.position = nextObject.transform.position; nextButton.transform.parent = wrapper; InputObject nextInput = nextButton.AddComponent <InputObject>(); nextInput.direction = 1; nextInput.textMesh = next; if (helper.playerLeftHand.GetComponent <SphereCollider>() == null) { SphereCollider leftHandCollider = helper.playerLeftHand.gameObject.AddComponent <SphereCollider>(); leftHandCollider.radius = .03f; leftHandCollider.isTrigger = true; SphereCollider rightHandCollider = helper.playerRightHand.gameObject.AddComponent <SphereCollider>(); rightHandCollider.radius = .03f; rightHandCollider.isTrigger = true; } GameObject pathObj = new GameObject("CameraPath"); pathObj.transform.position = Vector3.zero; pathObj.transform.parent = wrapper; pathRenderer = pathObj.AddComponent <PathRenderer>(); fixedPoint = GameObject.CreatePrimitive(PrimitiveType.Sphere); fixedPoint.transform.localScale = new Vector3(.05f, .05f, .05f); fixedPoint.GetComponent <Renderer>().material.color = new Color(34, 139, 34); ImportCameraPath(paths[0]); }
// OnActivate function is called when your camera behaviour was selected by the user. // The pluginCameraHelper is provided to you to help you with Player/Camera related operations. public void OnActivate(PluginCameraHelper helper) { _helper = helper; }