So I am making a clone of Crossy Roads the place the digicam follows the participant. It does some linear interpolation (Lerp) after shifting, and the digicam begins shifting away from the participant within the optimistic route (x-axis till digicam reaches to a sure vary the place participant is just not seen sufficient). Issues I’ve tried is by flagging it, however I believe I am doing it mistaken.
I’ve executed my digicam actions accordingly, however I’m having a problem the place the situations aren’t correctly met. I am get the offset digicam after not shifting, nevertheless it doesn’t the Lerp, and vice-versa. I need each to occur after a sure situation after the sport begins. When the participant strikes, the digicam follows it in Lerp. Nevertheless, as soon as the participant is “Idle”, its nonetheless Lerping. I need the digicam to proceed by itself and on the similar time focus on the participant’s object.
Digital camera with Lerp, however not shifting away from the participant
Digital camera shifting away, however not following participant with lerp
CameraController.cs
utilizing System.Collections;
utilizing System.Collections.Generic;
utilizing UnityEngine;
/*
** Digital camera following participant (Smoothing and angle): https://youtu.be/4HpC--2iowE
** Maximo: https://www.youtube.com/watch?v=bXNFxQpp2qk&ab_channel=iHeartGameDev
** Transferring character relative to digicam: https://discussion board.unity.com/threads/moving-character-relative-to-camera.383086/
** Digital camera observe v2: https://youtu.be/Jpqt2gRHXtc?listing=PLq_nO-RwB516fNlRBce0GbtJSfysAjOgU
*/
public class CameraController : MonoBehaviour
{
public GameObject participant;
public PlayerControl playerControlScript;
personal Vector3 newCameraPos;
public bool stillIdle;
void Begin()
{
stillIdle = false;
PlayerControl playerControlScript = GetComponent<PlayerControl>();
}
void LateUpdate()
{
participant = GameObject.FindGameObjectWithTag("Participant");
if (playerControlScript.GetfirstInput()) //True
{
stillIdle = true;
newCameraPos = Vector3.Lerp(rework.place, playerControlScript.rework.place, Time.deltaTime);
rework.place = new Vector3(newCameraPos.x, 1, newCameraPos.z);
}
if (stillIdle)
rework.place = new Vector3(rework.place.x + 0.69f * Time.deltaTime, rework.place.y, rework.place.z); //Transferring digicam away impact
}
}
PlayerControl.cs
public class PlayerControl : MonoBehaviour
{
bool firstInput;
Vector3 startPos;
Vector3 endPos;
public bool GetfirstInput() //I used to be studying tips on how to have a Get perform whereas my member was personal from one other script file
{
return firstInput;
}
void Replace()
{
if (Enter.GetButtonDown("up") || Enter.GetButtonDown("left") || Enter.GetButtonDown("proper") || Enter.GetButtonDown("down"))
{
//if sport begins
{
//Different variables being initialized right here
firstInput = true;
}
}
}
}
Most important Digital camera
Participant Object
Some assist can be admire it. I really feel I’ve been gazing this drawback and I wager it’s one thing minimal and small from simply pondering it.
Let me know if you happen to want clarifications. I am blissful to edit and reply them for everybody