コード例 #1
0
        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);
        }
コード例 #2
0
    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;
            }
        }
    }
コード例 #3
0
        // 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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        //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);
        }
コード例 #6
0
 public LivPlayerEntity(PluginCameraHelper helper, ref TimerHelper timerHelper)
 {
     this.pluginCameraHelper = helper;
     this.timerHelper        = timerHelper;
 }
コード例 #7
0
    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;
 }