How do I make transitioning camera in cinemachine.
I want to have a cinemachine system where when you press a button like C the camera locates the current player and zooms in like a rail moving down and it switches to the player camera and when C is pressed again to zoom out like the rail is moving up and transitions into the main camera.
Answer by Nanon413 · Dec 04, 2020 at 07:45 PM
I think this will help you
you need to create empty 3xGameObject in your scene and place then like you want on your scene and on camera add component "Look At Constraint" and add in your Gameobject you want to focus .
EDIT: YOU NEED TO CHANGE StartCoroutine(transition3()) TO VOID START
Blockquote
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class cameraTransition : MonoBehaviour
{
[Header("Camera")]
public float lerpTime;
public GameObject CameraObject;
public GameObject finalCameraPosition, startCameraPosition, position3;
private bool finalToStart, startToFinal, m_position3;
void Start()
{
//THERE//StartCoroutine(transition3())
}
void FixedUpdate()
{
cameraTranzition();
// THAT// StartCoroutine(transition3());DELETE
if (finalToStart == true)
{
StartCoroutine(transition1());
}
if (startToFinal == true)
{
StartCoroutine(transition2());
}
if (m_position3 == true)
{
StartCoroutine(transition3());
}
}
IEnumerator transition1()
{
yield return new WaitForSeconds(10);
finalToStart = false;
startToFinal = true;
m_position3 = false;
print("transition1");
}
IEnumerator transition2()
{
yield return new WaitForSeconds(10);
finalToStart = false;
startToFinal = false;
m_position3 = true;
print("transition2");
}
IEnumerator transition3()
{
yield return new WaitForSeconds(10);
finalToStart = true;
startToFinal = false;
m_position3 = false;
print("transition3");
}
public void cameraTranzition()
{
if (startToFinal)
{
CameraObject.transform.position = Vector3.Lerp(CameraObject.transform.position, finalCameraPosition.transform.position, lerpTime * Time.deltaTime);
}
if (finalToStart)
{
CameraObject.transform.position = Vector3.Lerp(CameraObject.transform.position, startCameraPosition.transform.position, lerpTime * Time.deltaTime);
}
if (m_position3)
{
CameraObject.transform.position = Vector3.Lerp(CameraObject.transform.position, position3.transform.position, lerpTime * Time.deltaTime * 3);
}
}
}
Your answer
Follow this Question
Related Questions
Need a 2D Rigid Body Controller Script 1 Answer
2 Issues with my SHUMP game 0 Answers
How to project a semi transparent copy of a gameobject? 0 Answers
How does this part of the script make sense? 3 Answers
Inheritance problem 1 Answer