void LateUpdate() { if (localPlayer == null) { return; } CameraRig cameraRig = defaultCamera; if (localPlayer.PlayerState.WeaponState == PlayerState.EWeaponState.AIMING || localPlayer.PlayerState.WeaponState == PlayerState.EWeaponState.AIMEDFIRING) { cameraRig = aimCamera; } float targetHeight = cameraRig.CameraOffset.y + (localPlayer.PlayerState.MoveState == PlayerState.EMoveState.CROUCHING ? cameraRig.CrouchHeight : 0); Vector3 targetPosition = cameraLookTarget.position + localPlayer.transform.forward * cameraRig.CameraOffset.z + localPlayer.transform.up * targetHeight + localPlayer.transform.right * cameraRig.CameraOffset.x; Vector3 collisionDestination = cameraLookTarget.position + localPlayer.transform.up * targetHeight - localPlayer.transform.forward * .5f; Debug.DrawLine(collisionDestination, targetPosition, Color.blue); HandleCameraCollision(collisionDestination, ref targetPosition); transform.position = Vector3.Lerp(transform.position, targetPosition, cameraRig.Damping * Time.deltaTime); transform.rotation = Quaternion.Lerp(transform.rotation, cameraLookTarget.rotation, cameraRig.Damping * Time.deltaTime); }
private void HandleCameraTransitionCompleted(CameraRig targetRig) { if (targetRig == this.PlayerController.CameraRig) { this.PlayerController.FreezeMotion = false; } }
void Start() { if (isLocalPlayer) { GameObject camprefab = Instantiate(cameraprefab, transform.position, transform.rotation) as GameObject; cameraRig = camprefab.GetComponent <CameraRig> (); camprefab.gameObject.tag = "PlayerCam"; cameraRig.target = transform; Player_Input.TPScamera = cameraRig.mainCamera; Ammo_Tool.ammo_cam = cameraRig.mainCamera; } if (!isLocalPlayer) { DisableComponents(); AssignRemoteLayer(); DisableCam(); } else { Scenecamera = Camera.main; if (Scenecamera != null) { Scenecamera.gameObject.SetActive(false); } } }
/// <summary> /// Activates the SteamVRCameraRig and deactivates the OVRCameraRig. /// </summary> void ActivateSteamVRCameraRig() { // if the DesktopCameraRig [PuppetJump] is in the scene if (GameObject.Find("DesktopCameraRig [PuppetJump]")) { // deactivate it GameObject.Find("DesktopCameraRig [PuppetJump]").SetActive(false); } // if the OVRCameraRig [PuppetJump] is in the scene if (GameObject.Find("OVRCameraRig [PuppetJump]")) { // deactivate it GameObject.Find("OVRCameraRig [PuppetJump]").SetActive(false); } // if the SteamVRCameraRig [PuppetJump] is in the scene if (GameObject.Find("SteamVRCameraRig [PuppetJump]")) { // activate it cameraRig = GameObject.Find("SteamVRCameraRig [PuppetJump]").GetComponent <CameraRig>(); cameraRig.gameObject.SetActive(true); } // if the SteamVRCameraRig [PuppetJump] is not in the scene else { // throw error Debug.LogError("Please place the SteamVRCameraRig [PuppetJump] prefab in your scene."); } deviceType = PuppetJumpManager.DeviceTypes.SteamVR; }
// 更新摄像机位置 void Update() { if (localPlayer == null) { return; } CameraRig cameraRig = defaultCamera; // 瞄准时转为瞄准摄像机 if (localPlayer.PlayerState.WeaponState == PlayerState.EWeaponState.AIMING || localPlayer.PlayerState.WeaponState == PlayerState.EWeaponState.AIMEDFIRING) { cameraRig = aimCamera; } Vector3 targetPosition = cameraLookAtTarget.position + localPlayer.transform.forward * cameraRig.CameraOffset.z + localPlayer.transform.up * cameraRig.CameraOffset.y + localPlayer.transform.right * cameraRig.CameraOffset.x; Quaternion targetRotation = Quaternion.LookRotation(cameraLookAtTarget.position - targetPosition, Vector3.up); transform.position = Vector3.Lerp(transform.position, targetPosition, cameraRig.Damping * Time.deltaTime); transform.rotation = Quaternion.Lerp(transform.rotation, targetRotation, cameraRig.Damping * Time.deltaTime); }
void LateUpdate() { if (localPlayer == null) { return; } CameraRig cameraRig = defaultCamera; if (localPlayer.PlayerState.WeaponState == PlayerState.EWeaponState.AIMING || localPlayer.PlayerState.WeaponState == PlayerState.EWeaponState.AIMEDFIRING) { cameraRig = aimCamera; } float targetHeight = cameraRig.CameraOffset.y; Vector3 targetPos = cameraLookTarget.position + localPlayer.transform.forward * cameraRig.CameraOffset.z + //forward offset localPlayer.transform.up * targetHeight + // vertical offset localPlayer.transform.right * cameraRig.CameraOffset.x; // horizontal offset Vector3 collisionDestination = cameraLookTarget.position + localPlayer.transform.up * targetHeight - localPlayer.transform.forward * .5f; HandleCameraCollision(collisionDestination, ref targetPos); transform.position = Vector3.Lerp(transform.position, targetPos, cameraRig.damping * Time.deltaTime); transform.rotation = Quaternion.Lerp(transform.rotation, cameraLookTarget.rotation, cameraRig.damping * Time.deltaTime); // value is between .99 and -.99, lookTarget pos should be between 1.5 and 0 }
public void Init() { GetGlobalPlayerVariables(); cameraRig = new CameraRig(); cameraRig.Init(playerCamera, viewTarget, zoom); cameraRig.SetCameraValues(new Vector3(5, -5.0f, 0.0f), 4.0f, 3.0f); }
// Update is called once per frame void LateUpdate() { if (localPlayer == null) { return; } CameraRig cameraRig = defaultCamera; if (localPlayer.PlayerState.weaponState == PlayerState.EWeaponState.AIMING || localPlayer.PlayerState.weaponState == PlayerState.EWeaponState.AIMED_FIRING) { cameraRig = aimCamera; } float targetHeight = cameraRig.cameraOffset.y + (localPlayer.PlayerState.moveState == PlayerState.EMoveState.CROUCHING ? cameraRig.crouchHeight : 0); //Camera follow player Vector3 targetPosition = cameraLookTarget.position + localPlayer.transform.forward * cameraRig.cameraOffset.z + localPlayer.transform.up * targetHeight + localPlayer.transform.right * cameraRig.cameraOffset.x; //Camera Collision fix V1 //Move camera away from walls Vector3 collisionCheckEnd = cameraLookTarget.position + localPlayer.transform.up * targetHeight - localPlayer.transform.forward * .5f; HandleCameraCollision(collisionCheckEnd, ref targetPosition); transform.position = Vector3.Lerp(transform.position, targetPosition, cameraRig.damping * Time.deltaTime); transform.rotation = Quaternion.Lerp(transform.rotation, cameraLookTarget.rotation, cameraRig.damping * Time.deltaTime); }
public override void OnInspectorGUI() { base.OnInspectorGUI(); cameraRig = (CameraRig)target; EditorGUILayout.LabelField("Camera Helper"); if (GUILayout.Button("Save Camera Position Now")) { Camera cam = Camera.main; if (cam) { Transform camT = cam.transform; Vector3 camPos = camT.localPosition; Vector3 camRight = camPos; Vector3 camLeft = camPos; camLeft.x = -camPos.x; cameraRig.cameraSettings.camPositionOffsetRight = camRight; cameraRig.cameraSettings.camPositionOffsetLeft = camLeft; } } if (GUILayout.Button("Save MIddle Camera Position Now")) { Camera cam = Camera.main; if (cam) { Transform camT = cam.transform; Vector3 camPos = camT.localPosition; Vector3 camFPS = camPos; cameraRig.cameraSettings.cameraOffsetMiddle = camFPS; } } }
void OnTriggerEnter(Collider other) { if (other.tag == "Player") { CameraRig rig = GameObject.FindObjectOfType <CameraRig>(); if (rig != null) { rig._target = transform.parent; } GameObject ob = GameObject.Find(PreviousRoomName); FadeRoom room = null; if (ob != null) { room = ob.GetComponent <FadeRoom>(); if (room != null) { room.Hide(); } } ob = GameObject.Find(NextRoomName); if (ob != null) { room = ob.GetComponent <FadeRoom>(); if (room != null) { room.Show(); } } } }
void LateUpdate() { if (Localplayer == null) { return; } CameraRig CameraRig = DefaultCmera; if (Localplayer.PlayerState.weaponstate == PlayerState.EWeponstate.AIMING || Localplayer.PlayerState.weaponstate == PlayerState.EWeponstate.AIMEDFIRING) { CameraRig = AimCamera; } float TargetHeight = CameraRig.CameraOfset.y + (Localplayer.PlayerState.movestate == PlayerState.Emovestste.CROUCHING ? CameraRig.crouchHeight : 0); Vector3 targetposition = cameralooktarget.position + Localplayer.transform.forward * CameraRig.CameraOfset.z + Localplayer.transform.up * TargetHeight + Localplayer.transform.right * CameraRig.CameraOfset.x; Vector3 collutionDestination = cameralooktarget.position + Localplayer.transform.up * TargetHeight - Localplayer.transform.forward * 0.5f; // Debug.DrawLine(targetposition, collutionDestination, Color.blue); HandleCameraColution(collutionDestination, ref targetposition); transform.position = Vector3.Lerp(transform.position, targetposition, CameraRig.Damping * Time.deltaTime); transform.rotation = Quaternion.Lerp(transform.rotation, cameralooktarget.rotation, CameraRig.Damping * Time.deltaTime); }
public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem) { if (!FindObjectOfType <CameraRig>()) { return; } CameraRig cameraRig = FindObjectOfType <CameraRig>().GetComponent <CameraRig>(); switch (target) { case TransformLinkTarget.root: cameraRig.GetComponent <TransformLink>().target = entity; cameraRig.GetComponent <TransformLink>().entityManager = dstManager; break; case TransformLinkTarget.head: cameraRig.head.GetComponent <TransformLink>().target = entity; cameraRig.head.GetComponent <TransformLink>().entityManager = dstManager; break; case TransformLinkTarget.leftHand: cameraRig.leftHand.GetComponent <TransformLink>().target = entity; cameraRig.leftHand.GetComponent <TransformLink>().entityManager = dstManager; break; case TransformLinkTarget.rightHand: cameraRig.rightHand.GetComponent <TransformLink>().target = entity; cameraRig.rightHand.GetComponent <TransformLink>().entityManager = dstManager; break; } Debug.Log(entity); }
private void Awake() { if (instance == null && instance != this) { Destroy(this); } instance = this; }
void SelectCameraRig() { cameraRig = defaultCamera; if (localPlayer.PlayerState.WeaponState == PlayerState.EWeaponState.AIMING || localPlayer.PlayerState.WeaponState == PlayerState.EWeaponState.AIMEDFIRING) { cameraRig = aimCamera; } }
public void SetRig(CameraRig rig) { this.CurrentRig = rig; this.PreviousRig = rig; this.TransitionTimeRemaining = 0f; this.GameCamera.transform.SetParent(this.CurrentRig.Anchor, true); this.GameCamera.transform.position = this.CurrentRig.Anchor.position; this.GameCamera.transform.rotation = Quaternion.LookRotation(this.CurrentRig.Lookat.position - this.CurrentRig.Anchor.position); }
void Awake() { InitRect(); myT = transform; camRig = GetComponent<CameraRig>(); presets = DefaultPresets(); currentAttitudeID = 2; }
void Awake() { rig = GetComponent <CameraRig>(); if (CheckCamera()) { enabled = false; rig.enabled = true; } Global.cameraRig = rig; }
public void TransitionTo(CameraRig rig, Vector3 offset, float speed) { if (rig == currentRig) { return; } mainCamera.TransitionTo(offset, speed); currentRig = rig; }
//-------------------------------------------------------------------------- // mono methods //-------------------------------------------------------------------------- /// <summary> /// Keep the CameraRig a singleton.</summary> void Awake() { if (_cameraRig == null) { _cameraRig = this; } else if(_cameraRig != null) { Destroy(gameObject); } }
/// <summary> /// Keep the CameraRig a singleton.</summary> void Awake() { if (Instance == null) { Instance = this; } else if (Instance != null) { Destroy(gameObject); } }
public static void Postfix(CameraRig __instance, CameraMode mode) { if (settings.fovMultiplierCutScenes == 1 && settings.fovMultiplier == 1) { return; } if (mode == CameraMode.Default && Game.Instance.CurrentMode == GameModeType.Cutscene) { __instance.Camera.fieldOfView = __instance.CameraZoom.FovMax * settings.fovMultiplierCutScenes / settings.fovMultiplier; } }
// Use this for initialization void Start() { controller.TriggerClicked += TriggerClicked; controller.TriggerUnclicked += TriggerUnclicked; controller.TriggerUsed += OnTriggerUsed; controller.Gripped += GripPressed; controller.MenuButtonClicked += MenuButtonPressed; cameraRig = GameObject.FindGameObjectWithTag("CameraRig").GetComponent <CameraRig>(); player = Camera.main.transform; playerJoint = GameObject.FindGameObjectWithTag("PlayerJoint").transform; }
private void Start() { iS = gameObject.AddComponent <InputSettings>(); camRig = GetComponentInChildren <CameraRig>(); sB = GetComponent <ShooterBehaviour>(); if (isController) { iS.SwitchToController(); } }
public ControlSystem(GameplaySettings gameplaySettings) { settings = gameplaySettings; Physics.gravity = new Vector3(0, -settings.Gravity, 0); touchControl = Object.FindObjectOfType <TouchControl>(); touchControl.onBeginPull += HandleBeginPull; touchControl.onPullHorizontal += HandlePullHorizontal; touchControl.onPullVertical += HandlePullVertical; cameraRig = Object.FindObjectOfType <CameraRig>(); LocalWindZone.getWindForce += () => clampedWindForce; }
private void Awake() { if (_instance != null && _instance != this) { Destroy(this.gameObject); } else { _instance = this; } Build(); }
// Start is called before the first frame update void Awake() { rb = GetComponent <Rigidbody>(); enemy = GetComponent <Enemy>().data; enemyDeath = GetComponent <EnemyDeath>(); enemyController = GetComponent <EnemyController>(); playerEnemy = enemy.playerEnemy; player = GameObject.FindObjectOfType <Player>(); playerHealth = FindObjectOfType <PlayerHealth>(); camRig = GameObject.Find("CameraRig").GetComponent <CameraRig>(); SetNewLocation(0); }
void Awake() { _player = GameObject.FindGameObjectWithTag("Player"); _player_cc = _player.GetComponent<CharacterController>(); _player_mover = _player.GetComponent<LookAtMouseMove>(); _player_render = _player.GetComponentInChildren<SpriteRenderer>(); _player_trail_render = _player.GetComponentInChildren<TimedTrailRenderer>(); _piece_rig = GameObject.FindGameObjectWithTag("piece").GetComponent<pieceRig>(); _camera_rig = GameObject.FindObjectOfType<CameraRig>(); _spawners = GameObject.FindObjectsOfType<Spawner>(); SetActivateSpawner(false); _player_render.enabled = false; }
void Start() { _gameGrid = GameObject.FindWithTag("GameGrid").GetComponent <GameGrid>(); _shapeSpawner = GameObject.FindWithTag("ShapeSpawner").GetComponent <ShapeSpawner>(); cameraRig = GameObject.Find("CameraRig").GetComponent <CameraRig>(); foreach (Transform child in transform) { var block = child.GetComponent <Block>(); if (block != null) { blocks.Add(child.GetComponent <Block>()); } } }
void Awake() { _player = GameObject.FindGameObjectWithTag("Player"); _player_cc = _player.GetComponent <CharacterController>(); _player_mover = _player.GetComponent <LookAtMouseMove>(); _player_render = _player.GetComponentInChildren <SpriteRenderer>(); _player_trail_render = _player.GetComponentInChildren <TimedTrailRenderer>(); _piece_rig = GameObject.FindGameObjectWithTag("piece").GetComponent <pieceRig>(); _camera_rig = GameObject.FindObjectOfType <CameraRig>(); _spawners = GameObject.FindObjectsOfType <Spawner>(); SetActivateSpawner(false); _player_render.enabled = false; }
public void Initialize() { sessionIsActive = false; MotionManager motion = MotionManager.instance; MoleculeManager molecule = MoleculeManager.instance; CameraRig rig = CameraRig.instance; motion.Initialize(); molecule.Initialize(); rig.Initialize(); molecule.editorUI.gameObject.SetActive(false); loginScreen.gameObject.SetActive(true); CaptureCamera capture = CaptureCamera.instance; capture.Initialize(); }
void Start() { #if UNITY_EDITOR AssetDatabase.Refresh(); // This will update all animators, fixes a bug with Git! #endif BattleVictoryBanner = GameObject.Find("BattleVictoryBanner"); BattleVictoryBanner.GetComponent <CanvasGroup>().alpha = 0f; MainCamera = GameObject.FindGameObjectWithTag("MainCamera"); CameraRig = MainCamera.GetComponent <CameraRig>(); Sield = GameObject.Find("Sield"); Ganiel = GameObject.Find("Sield"); CandyCornManager = GameObject.FindObjectOfType <CandyCornManager>(); }
public void TransitionToRig(CameraRig rig) { this.PreviousRig = this.CurrentRig; this.CurrentRig = rig; this.GameCamera.transform.SetParent(this.CurrentRig.Anchor, true); if (this.TransitionTimeRemaining > 0f) { // in the middle of a transition so back out float d = this.TransitionTimeRemaining / this.TransitionTime; this.TransitionTimeRemaining = Mathf.Clamp01((1f - d) * this.TransitionTime); } else { this.TransitionTimeRemaining = this.TransitionTime; } }
static void Postfix(CameraRig __instance, ref Vector3 ___m_TargetPosition) { if (settings.toggleRotateOnAllMaps || Main.resetExtraCameraAngles) { __instance.TickRotate(); } if (settings.toggleZoomOnAllMaps) { __instance.CameraZoom.TickZoom(); } if (settings.toggleScrollOnAllMaps) { __instance.TickScroll(); //__instance.TickCameraDrag(); //__instance.CameraDragToMove(); } }
private void CheckCameraRig(ref CameraRig cr) { // Check for negative or 0 values ThrowNegativeException((cr.cameraIndexOffset < 0), "cameraIndexOffset", true); ThrowNegativeException((cr.horizontalSeam < 0), "horizontalSeam", true); ThrowNegativeException((cr.verticalSeam < 0), "verticalSeam", true); ThrowNegativeException((cr.nearClip < 0), "nearClip", true); ThrowNegativeException((cr.farClip <= 0), "farClip", false); ThrowNegativeException((cr.screenAspectWidth <= 0), "screenAspectWidth", false); ThrowNegativeException((cr.screenAspectHeight <= 0), "screenAspectHeight", false); ThrowNegativeException((cr.masterNodeIndex < 0), "masterNodeIndex", true); if (cr.clusterType == CameraRig.ClusterType.Wall) { ThrowNegativeException((cr.wallParams.rows <= 0), "wallParams.rows", false); ThrowNegativeException((cr.wallParams.cols <= 0), "wallParams.cols", false); ThrowNegativeException((cr.fov <= 0), "fov", false); } else if (cr.clusterType == CameraRig.ClusterType.Cave) { ThrowNegativeException((cr.caveParams.sides <= 0), "caveParams.sides", false); // Cave without 4 sides shouldn't have sky or floor if (cr.caveParams.sides != 4) { if (cr.caveParams.hasSky) throw new Exception ("Error: Sky only available for Cave with 4 sides."); if (cr.caveParams.hasFloor) throw new Exception ("Error: Floor only available for Cave with 4 sides."); } // Cave has 4 walls else { if (cr.caveParams.hasSky) ThrowNegativeException((cr.caveParams.indexSky < 0), "caveParams.indexSky", true); if (cr.caveParams.hasFloor) ThrowNegativeException((cr.caveParams.indexFloor < 0), "caveParams.indexFloor", true); // If has both sky and floor, indexes for both cannot be the same if (cr.caveParams.hasSky && cr.caveParams.hasFloor && cr.caveParams.indexSky == cr.caveParams.indexFloor) throw new Exception ("Error: Index for Sky canot be similar to index for Floor."); } } // Check if far clip is lesser than near clip if (cr.farClip <= cr.nearClip) throw new Exception ("Error: Far clip must be more than near clip."); }
void Awake() { main = this; }
void Start() { cameraRig = GetComponentInChildren<CameraRig>(); ChangeState<InitBattleState>(); }
private void Start () { // Initialize values engine = GetComponent<CarEngine>(); carSetup = GetComponent<CarSetup>(); wheels = carSetup.Wheels; basicMaxRPM = carSetup.EngineMaxRPM; lightsSetup = GetComponent<LightsSetup>(); audioSource = GetComponent<AudioSource>(); cameraRig = GetComponent<CameraRig>(); carRigidbody = GetComponent<Rigidbody>(); carInput = CarInput.Instance; rumbling = false; rumbleTemp = rumbleTempInit; auxObject = null; dataManager = DataManager.Instance; sparksManager = GameObject.Find ("SparksManager").GetComponent<SparksManager>(); lookBack = false; respawnTemp = respawnTempInit; isPlayer = false; if(GetComponent<NetworkIdentity>()) { netIdentity = GetComponent<NetworkIdentity>(); isPlayer = netIdentity.isLocalPlayer; } else { isPlayer = true; } // Set up visual car switch(Application.platform) { case RuntimePlatform.WindowsEditor: case RuntimePlatform.WindowsPlayer: case RuntimePlatform.WindowsWebPlayer: { for(int i = 0; i < lowObjects.Length; i++) { lowObjects[i].SetActive (false); } for(int i = 0; i < highObjects.Length; i++) { highObjects[i].SetActive (true); } break; } case RuntimePlatform.WebGLPlayer: case RuntimePlatform.IPhonePlayer: case RuntimePlatform.BlackBerryPlayer: case RuntimePlatform.Android: { for(int i = 0; i < lowObjects.Length; i++) { lowObjects[i].SetActive (true); } for(int i = 0; i < highObjects.Length; i++) { highObjects[i].SetActive (false); } break; } default: { for(int i = 0; i < lowObjects.Length; i++) { lowObjects[i].SetActive (true); } for(int i = 0; i < highObjects.Length; i++) { highObjects[i].SetActive (false); } break; } } renderers = GetComponentsInChildren<MeshRenderer>(); }
/// <summary> /// Initialize /// </summary> void Awake () { // store singleton if (use != null) GameObject.Destroy(use.gameObject); use = this; // listen for its own messages MessengerAM.Listen(MessengerAM.listenTypeInput, this); // cache transforms m_transform = transform; m_mainTransform = Camera.main.transform; // set initial positions desiredPosition = m_transform.position; m_desiredCameraDistance = m_mainTransform.localPosition.magnitude; m_previousPosition = m_transform.position; // add some default idle time to prevent sending message on first frame idleTime = 1f; }
private void LoadAndCreateRig() { // Return if no rig path string rigPath = GetCmdArguments("-rigPath"); if (rigPath == null) return; // Handle any problems that might arise when reading the text // Create a new StreamReader, tell it which file to read try { // Create full path of rig file from the application path and the command line input string applicationParentPath; if (Application.platform == RuntimePlatform.OSXPlayer) // The parent to OXS data folder is the .app file. We need the parent of the .app. applicationParentPath = Directory.GetParent(Directory.GetParent(Application.dataPath).FullName).FullName; else applicationParentPath = Directory.GetParent(Application.dataPath).FullName; // Obtain the final rig path from relative to the application path. string rigFinalPath = Path.Combine(applicationParentPath, rigPath); // Read in data StreamReader theReader = new StreamReader(rigFinalPath, Encoding.Default); rigAttributes = theReader.ReadToEnd(); // Done reading, close the reader theReader.Close (); // Create rig using C#'s XmlSerializer to deserialize CameraRig newCR = null; XmlSerializer ser = new XmlSerializer(typeof(CameraRig)); TextReader reader = new StringReader (rigAttributes); newCR = (CameraRig)ser.Deserialize(reader); // Check new CameraRig to see if attributes are ok CheckCameraRig(ref newCR); // Replace the current rig m_Rig = newCR; } catch(Exception e) { Debug.Log ("[Date: " + System.DateTime.Now.ToString("MM/dd/yyyy") + " Time: " + System.DateTime.Now.ToString("hh:mm:ss") + "]" + Environment.NewLine); Debug.Log ("Exception caught: " + e + Environment.NewLine + Environment.NewLine); } }
void Awake() { m_characters = new List<Transform>(); m_cameraRig = cameraRig; }
void Start() { rig = GetComponent<CameraRig>(); }
void Awake() { camRig = GetComponent<CameraRig>(); }
void Start() { m_movement = GetComponent<TSMovement>(); m_animator = GetComponent<Animator>(); m_camRig = FindObjectOfType<CameraRig>(); InterpolatedFloat speed = new InterpolatedFloat(() => (m_forwardSpeed), (val) => { m_forwardSpeed = val; }); gameObject.AddComponent<FloatInterpolator>().Initialize(speed); SetRagdoll(false); StoreBasePose(); m_lastHeadRot = m_headBone.rotation; m_lastHeadLocalRot = m_headBone.localRotation; }
private void DrawClusterGizmo(CameraRig rig, ClusterRenderer clusterRenderer) { int totalNodeCount; if (rig.clusterType == CameraRig.ClusterType.Wall) totalNodeCount = rig.wallParams.cols * rig.wallParams.rows; else totalNodeCount = rig.caveParams.sides + (rig.caveParams.hasFloor ? 1 : 0) + (rig.caveParams.hasSky ? 1 : 0); for (int i = 0; i < totalNodeCount; ++i) { if (m_PreviewingIndex != -1 && m_PreviewingIndex != i) continue; float nearLeft = 0.0f; float nearRight = 0.0f; float nearBottom = 0.0f; float nearTop = 0.0f; // Get the nears rig.CalculateCameraProjectionFrustum (i, ref nearLeft, ref nearRight, ref nearBottom, ref nearTop); float ratio = rig.farClip / rig.nearClip; // Calculate the far float farLeft = nearLeft * ratio; float farRight = nearRight * ratio; float farBottom = nearBottom * ratio; float farTop = nearTop * ratio; // Points Vector3[] near = new Vector3[4]; near[0] = new Vector3 (nearLeft, nearBottom, rig.nearClip); near[1] = new Vector3 (nearRight, nearBottom, rig.nearClip); near[2] = new Vector3 (nearRight, nearTop, rig.nearClip); near[3] = new Vector3 (nearLeft, nearTop, rig.nearClip); Vector3[] far = new Vector3[4]; far[0] = new Vector3 (farLeft, farBottom, rig.farClip); far[1] = new Vector3 (farRight, farBottom, rig.farClip); far[2] = new Vector3 (farRight, farTop, rig.farClip); far[3] = new Vector3 (farLeft, farTop, rig.farClip); // Local to world transform (ignore scale of transform) Matrix4x4 localToWorld; if (rig.clusterType == CameraRig.ClusterType.Wall) { localToWorld = Matrix4x4.TRS(clusterRenderer.transform.position, clusterRenderer.transform.rotation, Vector3.one); } else { Quaternion q = clusterRenderer.transform.rotation * (m_PreviewingIndex == -1 ? Quaternion.Euler (rig.CalculateRotationForCaveNode (i)) : Quaternion.identity); localToWorld = Matrix4x4.TRS (clusterRenderer.transform.position, q, Vector3.one); } // transform point to world for (int p = 0; p < 4; ++p) { near[p] = localToWorld.MultiplyPoint (near[p]); far[p] = localToWorld.MultiplyPoint (far[p]); } // Draw the frustum gizmo for (int p = 0; p < 4; ++p) { Handles.DrawLine (near[p], near[(p + 1) % 4]); Handles.DrawLine (far[p], far[(p + 1) % 4]); Handles.DrawLine (near[p], far[p]); } // Label to show which index of node this screen belongs to Handles.Label(Vector3.Lerp(far[1], far[3], 0.9f), "" + i); // Button to activate preview Vector3 midPoint = Vector3.Lerp (far[0], far[2], 0.5f); float handleSize = HandleUtility.GetHandleSize(midPoint) * 0.1f; if (Handles.Button(midPoint, Quaternion.identity, handleSize, handleSize, Handles.DotCap)) { if (m_PreviewingIndex == i) { m_PreviewingIndex = -1; ResetCamera (); } else { m_PreviewingIndex = i; rig.SetupCamera (Camera.main, i); } } } }