[TUTORIAL] (Unity5) Câmera seguir mouse
3 participantes
Página 1 de 1
[TUTORIAL] (Unity5) Câmera seguir mouse
Esse é o script mouse look, no unity 4 e inferiores tinham a opção, porém no unity atual esse mouse look, não existe mais, então ta ai um script mouse look com suavização:
- Código:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
[AddComponentMenu("Camera-Control/Smooth Mouse Look")]
public class Mouse : MonoBehaviour {
public enum RotationAxes { MouseXAndY = 0, MouseX = 1, MouseY = 2 }
public RotationAxes axes = RotationAxes.MouseXAndY;
public float sensitivityX = 15F;
public float sensitivityY = 15F;
public float minimumX = -360F;
public float maximumX = 360F;
public float minimumY = -60F;
public float maximumY = 60F;
float rotationX = 0F;
float rotationY = 0F;
private List<float> rotArrayX = new List<float>();
float rotAverageX = 0F;
private List<float> rotArrayY = new List<float>();
float rotAverageY = 0F;
public float frameCounter = 20;
Quaternion originalRotation;
void Update ()
{
if (axes == RotationAxes.MouseXAndY)
{
rotAverageY = 0f;
rotAverageX = 0f;
rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
rotationX += Input.GetAxis("Mouse X") * sensitivityX;
rotArrayY.Add(rotationY);
rotArrayX.Add(rotationX);
if (rotArrayY.Count >= frameCounter) {
rotArrayY.RemoveAt(0);
}
if (rotArrayX.Count >= frameCounter) {
rotArrayX.RemoveAt(0);
}
for(int j = 0; j < rotArrayY.Count; j++) {
rotAverageY += rotArrayY[j];
}
for(int i = 0; i < rotArrayX.Count; i++) {
rotAverageX += rotArrayX[i];
}
rotAverageY /= rotArrayY.Count;
rotAverageX /= rotArrayX.Count;
rotAverageY = ClampAngle (rotAverageY, minimumY, maximumY);
rotAverageX = ClampAngle (rotAverageX, minimumX, maximumX);
Quaternion yQuaternion = Quaternion.AngleAxis (rotAverageY, Vector3.left);
Quaternion xQuaternion = Quaternion.AngleAxis (rotAverageX, Vector3.up);
transform.localRotation = originalRotation * xQuaternion * yQuaternion;
}
else if (axes == RotationAxes.MouseX)
{
rotAverageX = 0f;
rotationX += Input.GetAxis("Mouse X") * sensitivityX;
rotArrayX.Add(rotationX);
if (rotArrayX.Count >= frameCounter) {
rotArrayX.RemoveAt(0);
}
for(int i = 0; i < rotArrayX.Count; i++) {
rotAverageX += rotArrayX[i];
}
rotAverageX /= rotArrayX.Count;
rotAverageX = ClampAngle (rotAverageX, minimumX, maximumX);
Quaternion xQuaternion = Quaternion.AngleAxis (rotAverageX, Vector3.up);
transform.localRotation = originalRotation * xQuaternion;
}
else
{
rotAverageY = 0f;
rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
rotArrayY.Add(rotationY);
if (rotArrayY.Count >= frameCounter) {
rotArrayY.RemoveAt(0);
}
for(int j = 0; j < rotArrayY.Count; j++) {
rotAverageY += rotArrayY[j];
}
rotAverageY /= rotArrayY.Count;
rotAverageY = ClampAngle (rotAverageY, minimumY, maximumY);
Quaternion yQuaternion = Quaternion.AngleAxis (rotAverageY, Vector3.left);
transform.localRotation = originalRotation * yQuaternion;
}
}
void Start ()
{
Rigidbody rb = GetComponent<Rigidbody>();
if (rb)
rb.freezeRotation = true;
originalRotation = transform.localRotation;
Cursor.visible = false;
}
public static float ClampAngle (float angle, float min, float max)
{
angle = angle % 360;
if ((angle >= -360F) && (angle <= 360F)) {
if (angle < -360F) {
angle += 360F;
}
if (angle > 360F) {
angle -= 360F;
}
}
return Mathf.Clamp (angle, min, max);
}
}
ScorpionG4mer- Avançado
- PONTOS : 3445
REPUTAÇÃO : 45
Áreas de atuação : Inciante no C#, Arruaceiro no Blender
Respeito as regras :
Re: [TUTORIAL] (Unity5) Câmera seguir mouse
:|Ola sou noob extreme, e gostaria de saber se copiar e colar em um script funcionaria ou teria de fazer ajuste? Porque eu tentei fazer isso não consegui aparece alguns erros. :D Grato, desculpe as perguntas sonsas.
lirionsnow- Iniciante
- PONTOS : 3118
REPUTAÇÃO : 0
Áreas de atuação : Sou um ótimo criador de ideias, infelizmente não tenho conhecimento para aplica-las.
Estou tentando
Re: [TUTORIAL] (Unity5) Câmera seguir mouse
Não é nada sonso essa pergunta, não é como se eu fosse programador máster, rsrsrs, bom normalmente o script dava alguns erros, mas tire print, coloque no imgur, daí pegue o link direto e upe aí embaixo, para que eu veja os erros, bom o mais comum é o nome do script,lembre que o nome no script deve ser o mesmo na unity, então nomeie apertando f2 no script para renomea-lo para Mouselirionsnow escreveu::|Ola sou noob extreme, e gostaria de saber se copiar e colar em um script funcionaria ou teria de fazer ajuste? Porque eu tentei fazer isso não consegui aparece alguns erros. :D Grato, desculpe as perguntas sonsas.
Obs; tou no celular, mas amanhã de manhã já te respondo.
ScorpionG4mer- Avançado
- PONTOS : 3445
REPUTAÇÃO : 45
Áreas de atuação : Inciante no C#, Arruaceiro no Blender
Respeito as regras :
Re: [TUTORIAL] (Unity5) Câmera seguir mouse
Obrigado, vou fazer isso sim. :D
lirionsnow- Iniciante
- PONTOS : 3118
REPUTAÇÃO : 0
Áreas de atuação : Sou um ótimo criador de ideias, infelizmente não tenho conhecimento para aplica-las.
Estou tentando
Re: [TUTORIAL] (Unity5) Câmera seguir mouse
Oq exatamente este script faz?
MeverPlays- Mestre
- PONTOS : 3867
REPUTAÇÃO : 48
Áreas de atuação : SketchUp, Unity.
Respeito as regras :
Re: [TUTORIAL] (Unity5) Câmera seguir mouse
Faz como o o titulo do tópico rsrsrs, é um script que faz com que de acordo com que você movimenta o mouse em seu jogo, a câmera movimenta também.MeverPlays escreveu:Oq exatamente este script faz?
ScorpionG4mer- Avançado
- PONTOS : 3445
REPUTAÇÃO : 45
Áreas de atuação : Inciante no C#, Arruaceiro no Blender
Respeito as regras :
Re: [TUTORIAL] (Unity5) Câmera seguir mouse
Sim eu vi, mas, no unity 5 ja tem isso no proprio FPSController. Pensei que era aquele negocio que não sei o nome, que na medida que vc mexe a camera, em jogos de tiro, a arma tbm mexe mas meio que depois da camera sabe? tipo um lag. faz um tempão que to querendo saber como faz isso :/
MeverPlays- Mestre
- PONTOS : 3867
REPUTAÇÃO : 48
Áreas de atuação : SketchUp, Unity.
Respeito as regras :
Re: [TUTORIAL] (Unity5) Câmera seguir mouse
Mano, é simples, acho que o nome do efeito é smooth, estuda um pouco ele e vê como pode usar ele, é tipo uma suavidade, esse script é melhor porque não é da unity, não sei se a licença mudou mas os Standard Assets é da unity,ou seja, não deixa você vender seus games, teria que ter a proMeverPlays escreveu:Sim eu vi, mas, no unity 5 ja tem isso no proprio FPSController. Pensei que era aquele negocio que não sei o nome, que na medida que vc mexe a camera, em jogos de tiro, a arma tbm mexe mas meio que depois da camera sabe? tipo um lag. faz um tempão que to querendo saber como faz isso :/
ScorpionG4mer- Avançado
- PONTOS : 3445
REPUTAÇÃO : 45
Áreas de atuação : Inciante no C#, Arruaceiro no Blender
Respeito as regras :
Tópicos semelhantes
» [TUTORIAL] Câmera seguir o mouse em 2D, com limite de distancia ao Jogador
» [TUTORIAL] (Unity5) Script: Cordenadas
» [TUTORIAL] Câmera Seguir Objeto Suavemente
» [TUTORIAL] Zoom de Camera com o Scroll do Mouse
» No script da "Câmera estilo Gta" como faço para o mouse mover a câmera ?
» [TUTORIAL] (Unity5) Script: Cordenadas
» [TUTORIAL] Câmera Seguir Objeto Suavemente
» [TUTORIAL] Zoom de Camera com o Scroll do Mouse
» No script da "Câmera estilo Gta" como faço para o mouse mover a câmera ?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos