Jogador inclinando a unidade
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Leaning: MonoBehaviour
{
//Input settings
public KeyCode leanLeftKey;
public KeyCode leanRightKey;
//Leaning
public Transform Normal;
public Transform Lean_Right;
public Transform Lean_Left;
//Smoothing
public float LeanSmoothing = 10;
//private vars
private int curAim = 0;
// Update is called once per frame
void Update()
{
AimInput();
DetermineAim();
DetermineLean();
}
//Determine aim from player
private void AimInput()
{
curAim = 0;
if(Input.GetKey(leanLeftKey)) curAim += 1;
if(Input.GetKey(leanRightKey)) curAim -= 1;
}
//Move cam to position
private void DetermineAim()
{
Vector3 target = Normal.position;
if(curAim == -1)
target = Lean_Right.position;
else if(curAim == 1)
target = Lean_Left.position;
transform.position = Vector3.Lerp(transform.position, target, Time.deltaTime * LeanSmoothing);
}
//rotation cam
private void DetermineLean()
{
Quaternion target = Normal.localRotation;
if(curAim == -1)
target = Lean_Right.localRotation;
else if(curAim == 1)
target = Lean_Left.localRotation;
transform.localRotation = Quaternion.Lerp(transform.localRotation, target, Time.deltaTime * LeanSmoothing);
}
}
HarryMonster