[Script]Ghost/Free/Fly Cam
Página 1 de 1
[Script]Ghost/Free/Fly Cam
Bom dia,tarde e noite pra td mundo, dps de muito tempo sem frequentar o fórum decidi voltar, e pra voltar com chave de ouro tou deixando um script de FreeCam ai pra vcs.
Uma feature interessante que consegui implementar foi a câmera rodar no eixo Z de acordo com o movimento X do mouse, tipo a movimentação da câmera em Black Mesa, emfim só testando pra ver.
Se for necessário eu documento os script pra vcs <3
Uma feature interessante que consegui implementar foi a câmera rodar no eixo Z de acordo com o movimento X do mouse, tipo a movimentação da câmera em Black Mesa, emfim só testando pra ver.
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(Camera))]
public class FreeCam : MonoBehaviour
{
[Header("Config")]
public float m_Speed = 10;
public float m_slowMoveFactor = 0.25f;
public float m_fastMoveFactor = 3;
[Space(20)]
public bool m_startLocked = true;//
public bool m_lockOnClick = true;//
public float m_sensivity = 100;
[Space(20)]
public float m_minVerticalClamp = -90;
public float m_maxVerticalClamp = 90;
[Header("KeyBindings")]
public KeyCode m_unlockCursor = KeyCode.Escape;//
public KeyCode m_fast = KeyCode.LeftShift;
public KeyCode m_slow = KeyCode.LeftControl;
private float m_rx;
private float m_ry;
private float m_roll;
private Camera cam;
void Start()
{
if(m_startLocked)
{
Cursor.lockState = CursorLockMode.Locked;
}
cam = transform.GetComponent<Camera>();
}
// Update is called once per frame
void Update()
{
if (Input.GetMouseButtonDown(0) && m_lockOnClick)
{
Cursor.lockState = CursorLockMode.Locked;
}
if (Input.GetKeyDown(m_unlockCursor))
{
Cursor.lockState = CursorLockMode.None;
}
m_rx += Input.GetAxis("Mouse X") * m_sensivity * Time.deltaTime;
m_ry += Input.GetAxis("Mouse Y") * m_sensivity * Time.deltaTime;
m_ry = Mathf.Clamp(m_ry, m_minVerticalClamp, m_maxVerticalClamp);
m_roll = Mathf.Lerp(m_roll, Input.GetAxis("Mouse X")* 2, Time.deltaTime * 10);
transform.localEulerAngles = new Vector3(-m_ry, m_rx, m_roll);
if (Input.GetKey(m_fast))
{
transform.position += transform.forward * (m_Speed * m_fastMoveFactor) * Input.GetAxis("Vertical") * Time.deltaTime;
transform.position += transform.right * (m_Speed * m_fastMoveFactor) * Input.GetAxis("Horizontal") * Time.deltaTime;
}
else if (Input.GetKey(m_slow))
{
transform.position += transform.forward * (m_Speed * m_slowMoveFactor) * Input.GetAxis("Vertical") * Time.deltaTime;
transform.position += transform.right * (m_Speed * m_slowMoveFactor) * Input.GetAxis("Horizontal") * Time.deltaTime;
}
else
{
transform.position += transform.forward * m_Speed * Input.GetAxis("Vertical") * Time.deltaTime;
transform.position += transform.right * m_Speed * Input.GetAxis("Horizontal") * Time.deltaTime;
}
}
}
Se for necessário eu documento os script pra vcs <3
BRGC- ProgramadorMaster
- PONTOS : 3051
REPUTAÇÃO : 59
Idade : 20
Áreas de atuação : C#, C++, C, Flutter
Respeito as regras :
Tópicos semelhantes
» [TUTORIAL] Script de arma completo! [FREE]
» "Problema" com o script de mover objetos versão free do Marcos Schultz
» Tetris: Ghost House
» Como acessar variável de um script usando outro script (Entre e entenda).
» Erro no Script There is no 'GameObject' attached to the "UMP45" game object, but a script is trying to access it
» "Problema" com o script de mover objetos versão free do Marcos Schultz
» Tetris: Ghost House
» Como acessar variável de um script usando outro script (Entre e entenda).
» Erro no Script There is no 'GameObject' attached to the "UMP45" game object, but a script is trying to access it
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos