[TUTORIAL] Menu pause ( AVANÇADO )
+10
danizidio
Byanno7
viny123
marcelo123
tantan.cards
LeonradoGp
cosmoplay
fernando15014
Lucas Garcia Frade
MarcosSchultz
14 participantes
Página 1 de 2
Página 1 de 2 • 1, 2
[TUTORIAL] Menu pause ( AVANÇADO )
Crie um script com o nome " MENU " e cole este código, e coloque o script na sua Camera.
- Código:
using UnityEngine;
using System.Collections;
public class MENU : MonoBehaviour {
private bool JanelaDosGraficos,botoesPrincipais;
private float VOLUME,SENSIBILIDADE;
public float minimoVOLUME = 0.5f,maximoVOLUME = 20,minimoSENS = 1,maximoSENS = 15;
public GUISkin minhaSkin;
public Texture RESOLUCOES,SensibilidadeMouse,QUALIDADE,Volumes,ModoJanela;
void Update (){
AudioListener.volume = VOLUME;
if (Input.GetKeyDown ("escape")) {
if (MouseLook.PodeMover == true) {
MouseLook.PodeMover = false;
Time.timeScale = 0;
Screen.showCursor = true;
botoesPrincipais = true;
} else if (MouseLook.PodeMover == false) {
MouseLook.PodeMover = true;
Time.timeScale = 1;
Screen.showCursor = false;
botoesPrincipais = false;
}
}
}
void Start(){
Time.timeScale = 1;
AudioListener.volume = 1;
Screen.showCursor = false;
botoesPrincipais = false;
//==================== PREFERENCIAS =====================//
if (PlayerPrefs.HasKey ("VOLUME")) {
VOLUME = PlayerPrefs.GetFloat ("VOLUME");
} else {
PlayerPrefs.SetFloat ("VOLUME", VOLUME);
}
if (PlayerPrefs.HasKey ("SENSIBILIDADE")) {
SENSIBILIDADE = PlayerPrefs.GetFloat ("SENSIBILIDADE");
} else {
PlayerPrefs.SetFloat ("SENSIBILIDADE", SENSIBILIDADE);
}
}
void OnGUI(){
if (MouseLook.PodeMover == false) {
GUI.skin = minhaSkin;
//====================== PARTE PRINCIPAL DO MENU ============================//
if (botoesPrincipais == true) {
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 16, Screen.height / 2 - Screen.height / 8, Screen.width / 8, Screen.height / 14), "VOLTAR")) {
MouseLook.PodeMover = true;
Time.timeScale = 1;
Screen.showCursor = false;
botoesPrincipais = false;
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 16, Screen.height / 2 - Screen.height / 28, Screen.width / 8, Screen.height / 14), "QUALIDADE GRAFICA")) {
if (JanelaDosGraficos == false) {
JanelaDosGraficos = true;
} else {
JanelaDosGraficos = false;
}
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 16, Screen.height / 2 + Screen.height / 18, Screen.width / 8, Screen.height / 14), "SAIR")) {
Application.Quit ();
}
}
//====================== PARTE GRAFICA DO MENU ============================//
if (JanelaDosGraficos == true) {
botoesPrincipais = false;
//BOTOES
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 2.2f, Screen.height / 2 + Screen.height / 3, Screen.width / 8, Screen.height / 14), "VOLTAR")) {
JanelaDosGraficos = false;
botoesPrincipais = true;
}
if (GUI.Button (new Rect (Screen.width / 2 + Screen.width / 5, Screen.height / 2 - Screen.height / 4, Screen.width / 8, Screen.height / 14), "JANELA")) {
Screen.fullScreen = !Screen.fullScreen;
}
// SALVAR PREFERENCIAS
if (GUI.Button (new Rect (Screen.width / 2 + Screen.width / 5, Screen.height / 2 + Screen.height / 3, Screen.width / 8, Screen.height / 14), "SALVAR PREF.")) {
PlayerPrefs.SetFloat ("VOLUME", VOLUME);
PlayerPrefs.SetFloat ("SENSIBILIDADE", SENSIBILIDADE);
}
// BARRAS HORIZONTAIS
VOLUME = GUI.HorizontalSlider (new Rect (Screen.width / 2 + Screen.width / 5, Screen.height / 2, Screen.width / 8, Screen.height / 14), VOLUME, minimoVOLUME, maximoVOLUME);
SENSIBILIDADE = GUI.HorizontalSlider (new Rect (Screen.width / 2 + Screen.width / 5, Screen.height / 2 + Screen.height / 5, Screen.width / 8, Screen.height / 14), SENSIBILIDADE, minimoSENS, maximoSENS);
//=============================== PARTE GRAFICA QUALIDADES ============================//
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 3, Screen.height / 2 - Screen.height / 4, Screen.width / 8, Screen.height / 14), "PESSIMO")) {
QualitySettings.SetQualityLevel (0);
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 3, Screen.height / 2 - Screen.height / 6, Screen.width / 8, Screen.height / 14), "RUIM")) {
QualitySettings.SetQualityLevel (1);
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 3, Screen.height / 2 - Screen.height / 12, Screen.width / 8, Screen.height / 14), "SIMPLES")) {
QualitySettings.SetQualityLevel (2);
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 3, Screen.height / 2, Screen.width / 8, Screen.height / 14), "BOM")) {
QualitySettings.SetQualityLevel (3);
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 3, Screen.height / 2 + Screen.height / 12, Screen.width / 8, Screen.height / 14), "BONITO")) {
QualitySettings.SetQualityLevel (4);
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 3, Screen.height / 2 + Screen.height / 6, Screen.width / 8, Screen.height / 14), "FANTASTICO")) {
QualitySettings.SetQualityLevel (5);
}
//=============================== PARTE GRAFICA RESOLUÇOES ============================//
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 16, Screen.height / 2 - Screen.height / 4, Screen.width / 8, Screen.height / 14), "640x480")) {
Screen.SetResolution (640, 480, true);
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 16, Screen.height / 2 - Screen.height / 6, Screen.width / 8, Screen.height / 14), "800x600")) {
Screen.SetResolution (800, 600, true);
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 16, Screen.height / 2 - Screen.height / 12, Screen.width / 8, Screen.height / 14), "1024x768")) {
Screen.SetResolution (1024, 768, true);
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 16, Screen.height / 2, Screen.width / 8, Screen.height / 14), "1280x720")) {
Screen.SetResolution (1280, 720, true);
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 16, Screen.height / 2 + Screen.height / 12, Screen.width / 8, Screen.height / 14), "1280x800")) {
Screen.SetResolution (1280, 800, true);
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 16, Screen.height / 2 + Screen.height / 6, Screen.width / 8, Screen.height / 14), "1366x768")) {
Screen.SetResolution (1366, 768, true);
}
GUI.DrawTexture (new Rect (Screen.width / 2 - Screen.width / 3, Screen.height / 2 - Screen.height / 2.5f, Screen.width / 8, Screen.height / 14), QUALIDADE);
GUI.DrawTexture (new Rect (Screen.width / 2 - Screen.width / 16, Screen.height / 2 - Screen.height / 2.5f, Screen.width / 8, Screen.height / 14),RESOLUCOES);
GUI.DrawTexture (new Rect (Screen.width / 2 + Screen.width / 5, Screen.height / 2 - Screen.height / 2.5f, Screen.width / 8, Screen.height / 14), ModoJanela);
GUI.DrawTexture (new Rect (Screen.width / 2 + Screen.width / 5, Screen.height / 2 - Screen.height / 10, Screen.width / 8, Screen.height / 14), Volumes);
GUI.DrawTexture (new Rect (Screen.width / 2 + Screen.width / 5, Screen.height / 2 + Screen.height / 10, Screen.width / 8, Screen.height / 14), SensibilidadeMouse);
}
}
}
}
LINKE estas texturas nas suas devidas variáveis.
Após isso, modifique o seu script MouseLook ( presente na camera do seu personagem caso esteja usando o First Person Controller )
cole este código, substituindo o outro.
- Código:
using UnityEngine;
using System.Collections;
[AddComponentMenu("Camera-Control/Mouse Look")]
public class MouseLook : 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 rotationY = 0F;
public static bool PodeMover; // MODIFIQUEI AQUI
void Update (){
sensitivityX = PlayerPrefs.GetFloat("SENSIBILIDADE"); // MODIFIQUEI AQUI
sensitivityY = PlayerPrefs.GetFloat("SENSIBILIDADE"); // MODIFIQUEI AQUI
if (PodeMover) { // MODIFIQUEI AQUI
if (axes == RotationAxes.MouseXAndY) {
float rotationX = transform.localEulerAngles.y + Input.GetAxis ("Mouse X") * sensitivityX;
rotationY += Input.GetAxis ("Mouse Y") * sensitivityY;
rotationY = Mathf.Clamp (rotationY, minimumY, maximumY);
transform.localEulerAngles = new Vector3 (-rotationY, rotationX, 0);
} else if (axes == RotationAxes.MouseX) {
transform.Rotate (0, Input.GetAxis ("Mouse X") * sensitivityX, 0);
} else {
rotationY += Input.GetAxis ("Mouse Y") * sensitivityY;
rotationY = Mathf.Clamp (rotationY, minimumY, maximumY);
transform.localEulerAngles = new Vector3 (-rotationY, transform.localEulerAngles.y, 0);
}
}
}
void Start (){
if (rigidbody) {
rigidbody.freezeRotation = true;
}
PodeMover = true; // MODIFIQUEI AQUI
}
}
E pronto, Menu Pause Criado
OBS: SE ESTIVER UTILIZANDO A UNITY 5, USE OS SCRIPTS ABAIXO:
PLAYER:
- Código:
using UnityEngine;
using System.Collections;
public class MENU : MonoBehaviour {
private bool JanelaDosGraficos,botoesPrincipais;
private float VOLUME,SENSIBILIDADE;
public float minimoVOLUME = 0.5f,maximoVOLUME = 20,minimoSENS = 1,maximoSENS = 15;
public GUISkin minhaSkin;
public Texture RESOLUCOES,SensibilidadeMouse,QUALIDADE,Volumes,ModoJanela;
void Update (){
AudioListener.volume = VOLUME;
if (Input.GetKeyDown ("escape")) {
if (MouseLook.PodeMover == true) {
MouseLook.PodeMover = false;
Time.timeScale = 0;
Cursor.visible = true;
botoesPrincipais = true;
} else if (MouseLook.PodeMover == false) {
MouseLook.PodeMover = true;
Time.timeScale = 1;
Cursor.visible = false;
botoesPrincipais = false;
}
}
}
void Start(){
Time.timeScale = 1;
AudioListener.volume = 1;
Cursor.visible = false;
botoesPrincipais = false;
//==================== PREFERENCIAS =====================//
if (PlayerPrefs.HasKey ("VOLUME")) {
VOLUME = PlayerPrefs.GetFloat ("VOLUME");
} else {
PlayerPrefs.SetFloat ("VOLUME", VOLUME);
}
if (PlayerPrefs.HasKey ("SENSIBILIDADE")) {
SENSIBILIDADE = PlayerPrefs.GetFloat ("SENSIBILIDADE");
} else {
PlayerPrefs.SetFloat ("SENSIBILIDADE", SENSIBILIDADE);
}
}
void OnGUI(){
if (MouseLook.PodeMover == false) {
GUI.skin = minhaSkin;
//====================== PARTE PRINCIPAL DO MENU ============================//
if (botoesPrincipais == true) {
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 16, Screen.height / 2 - Screen.height / 8, Screen.width / 8, Screen.height / 14), "VOLTAR")) {
MouseLook.PodeMover = true;
Time.timeScale = 1;
Cursor.visible = false;
botoesPrincipais = false;
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 16, Screen.height / 2 - Screen.height / 28, Screen.width / 8, Screen.height / 14), "QUALIDADE GRAFICA")) {
if (JanelaDosGraficos == false) {
JanelaDosGraficos = true;
} else {
JanelaDosGraficos = false;
}
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 16, Screen.height / 2 + Screen.height / 18, Screen.width / 8, Screen.height / 14), "SAIR")) {
Application.Quit ();
}
}
//====================== PARTE GRAFICA DO MENU ============================//
if (JanelaDosGraficos == true) {
botoesPrincipais = false;
//BOTOES
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 2.2f, Screen.height / 2 + Screen.height / 3, Screen.width / 8, Screen.height / 14), "VOLTAR")) {
JanelaDosGraficos = false;
botoesPrincipais = true;
}
if (GUI.Button (new Rect (Screen.width / 2 + Screen.width / 5, Screen.height / 2 - Screen.height / 4, Screen.width / 8, Screen.height / 14), "JANELA")) {
Screen.fullScreen = !Screen.fullScreen;
}
// SALVAR PREFERENCIAS
if (GUI.Button (new Rect (Screen.width / 2 + Screen.width / 5, Screen.height / 2 + Screen.height / 3, Screen.width / 8, Screen.height / 14), "SALVAR PREF.")) {
PlayerPrefs.SetFloat ("VOLUME", VOLUME);
PlayerPrefs.SetFloat ("SENSIBILIDADE", SENSIBILIDADE);
}
// BARRAS HORIZONTAIS
VOLUME = GUI.HorizontalSlider (new Rect (Screen.width / 2 + Screen.width / 5, Screen.height / 2, Screen.width / 8, Screen.height / 14), VOLUME, minimoVOLUME, maximoVOLUME);
SENSIBILIDADE = GUI.HorizontalSlider (new Rect (Screen.width / 2 + Screen.width / 5, Screen.height / 2 + Screen.height / 5, Screen.width / 8, Screen.height / 14), SENSIBILIDADE, minimoSENS, maximoSENS);
//=============================== PARTE GRAFICA QUALIDADES ============================//
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 3, Screen.height / 2 - Screen.height / 4, Screen.width / 8, Screen.height / 14), "PESSIMO")) {
QualitySettings.SetQualityLevel (0);
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 3, Screen.height / 2 - Screen.height / 6, Screen.width / 8, Screen.height / 14), "RUIM")) {
QualitySettings.SetQualityLevel (1);
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 3, Screen.height / 2 - Screen.height / 12, Screen.width / 8, Screen.height / 14), "SIMPLES")) {
QualitySettings.SetQualityLevel (2);
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 3, Screen.height / 2, Screen.width / 8, Screen.height / 14), "BOM")) {
QualitySettings.SetQualityLevel (3);
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 3, Screen.height / 2 + Screen.height / 12, Screen.width / 8, Screen.height / 14), "BONITO")) {
QualitySettings.SetQualityLevel (4);
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 3, Screen.height / 2 + Screen.height / 6, Screen.width / 8, Screen.height / 14), "FANTASTICO")) {
QualitySettings.SetQualityLevel (5);
}
//=============================== PARTE GRAFICA RESOLUÇOES ============================//
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 16, Screen.height / 2 - Screen.height / 4, Screen.width / 8, Screen.height / 14), "640x480")) {
Screen.SetResolution (640, 480, true);
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 16, Screen.height / 2 - Screen.height / 6, Screen.width / 8, Screen.height / 14), "800x600")) {
Screen.SetResolution (800, 600, true);
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 16, Screen.height / 2 - Screen.height / 12, Screen.width / 8, Screen.height / 14), "1024x768")) {
Screen.SetResolution (1024, 768, true);
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 16, Screen.height / 2, Screen.width / 8, Screen.height / 14), "1280x720")) {
Screen.SetResolution (1280, 720, true);
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 16, Screen.height / 2 + Screen.height / 12, Screen.width / 8, Screen.height / 14), "1280x800")) {
Screen.SetResolution (1280, 800, true);
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 16, Screen.height / 2 + Screen.height / 6, Screen.width / 8, Screen.height / 14), "1366x768")) {
Screen.SetResolution (1366, 768, true);
}
GUI.DrawTexture (new Rect (Screen.width / 2 - Screen.width / 3, Screen.height / 2 - Screen.height / 2.5f, Screen.width / 8, Screen.height / 14), QUALIDADE);
GUI.DrawTexture (new Rect (Screen.width / 2 - Screen.width / 16, Screen.height / 2 - Screen.height / 2.5f, Screen.width / 8, Screen.height / 14),RESOLUCOES);
GUI.DrawTexture (new Rect (Screen.width / 2 + Screen.width / 5, Screen.height / 2 - Screen.height / 2.5f, Screen.width / 8, Screen.height / 14), ModoJanela);
GUI.DrawTexture (new Rect (Screen.width / 2 + Screen.width / 5, Screen.height / 2 - Screen.height / 10, Screen.width / 8, Screen.height / 14), Volumes);
GUI.DrawTexture (new Rect (Screen.width / 2 + Screen.width / 5, Screen.height / 2 + Screen.height / 10, Screen.width / 8, Screen.height / 14), SensibilidadeMouse);
}
}
}
}
MouseLook:
- Código:
using UnityEngine;
using System.Collections;
[AddComponentMenu("Camera-Control/Mouse Look")]
public class MouseLook : 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;
public static bool PodeMover;
float rotationY = 0F;
void Update (){
if (PodeMover == false) {
if (axes == RotationAxes.MouseXAndY) {
float rotationX = transform.localEulerAngles.y + Input.GetAxis ("Mouse X") * sensitivityX;
rotationY += Input.GetAxis ("Mouse Y") * sensitivityY;
rotationY = Mathf.Clamp (rotationY, minimumY, maximumY);
transform.localEulerAngles = new Vector3 (-rotationY, rotationX, 0);
} else if (axes == RotationAxes.MouseX) {
transform.Rotate (0, Input.GetAxis ("Mouse X") * sensitivityX, 0);
} else {
rotationY += Input.GetAxis ("Mouse Y") * sensitivityY;
rotationY = Mathf.Clamp (rotationY, minimumY, maximumY);
transform.localEulerAngles = new Vector3 (-rotationY, transform.localEulerAngles.y, 0);
}
}
}
void Start (){
if (GetComponent<Rigidbody>())
GetComponent<Rigidbody>().freezeRotation = true;
}
}
Última edição por MarcosSchultz em Ter Jun 07, 2016 8:46 pm, editado 1 vez(es)
Re: [TUTORIAL] Menu pause ( AVANÇADO )
como é o comando Cursor.LookCursor na Unity 5?
Lucas Garcia Frade- Avançado
- PONTOS : 3783
REPUTAÇÃO : 9
Idade : 23
Respeito as regras :
Re: [TUTORIAL] Menu pause ( AVANÇADO )
continua a mesma coisa:
já o de deixar o cursor visivel ou invisivel mudou para este aqui:
- Código:
Screen.lockCursor = true;
já o de deixar o cursor visivel ou invisivel mudou para este aqui:
- Código:
Cursor.visible = false;
Lucas Garcia Frade- Avançado
- PONTOS : 3783
REPUTAÇÃO : 9
Idade : 23
Respeito as regras :
Re: [TUTORIAL] Menu pause ( AVANÇADO )
A Unity 5 ja vem com o som dos passos, mas quando eu coloco o script do MENU-PAUSE que vc fez o som para, o que esta acontecendo?
Lucas Garcia Frade- Avançado
- PONTOS : 3783
REPUTAÇÃO : 9
Idade : 23
Respeito as regras :
Re: [TUTORIAL] Menu pause ( AVANÇADO )
Olha o script do MENU-PAUSE;
- Código:
using UnityEngine;
using System.Collections;
public class MENU : MonoBehaviour {
private bool JanelaDosGraficos,botoesPrincipais;
private float VOLUME,SENSIBILIDADE;
public float minimoVOLUME = 0.5f,maximoVOLUME = 20,minimoSENS = 1,maximoSENS = 15;
public GUISkin minhaSkin;
public Texture RESOLUCOES,SensibilidadeMouse,QUALIDADE,Volumes,ModoJanela;
void Update (){
AudioListener.volume = VOLUME;
if (Input.GetKeyDown ("escape")) {
if (Mouse.PodeMover == true) {
Mouse.PodeMover = false;
Time.timeScale = 0;
Cursor.visible = true;
Screen.lockCursor = false;
botoesPrincipais = true;
} else if (Mouse.PodeMover == false) {
Mouse.PodeMover = true;
Time.timeScale = 1;
Screen.lockCursor = true;
Cursor.visible = false;
botoesPrincipais = false;
}
}
}
void Start(){
Time.timeScale = 1;
AudioListener.volume = 1;
Cursor.visible = false;
botoesPrincipais = false;
Mouse.PodeMover = true;
Screen.lockCursor = true;
//==================== PREFERENCIAS =====================//
if (PlayerPrefs.HasKey ("VOLUME")) {
VOLUME = PlayerPrefs.GetFloat ("VOLUME");
} else {
PlayerPrefs.SetFloat ("VOLUME", VOLUME);
}
if (PlayerPrefs.HasKey ("SENSIBILIDADE")) {
SENSIBILIDADE = PlayerPrefs.GetFloat ("SENSIBILIDADE");
} else {
PlayerPrefs.SetFloat ("SENSIBILIDADE", SENSIBILIDADE);
}
}
void OnGUI(){
if (Mouse.PodeMover == false) {
GUI.skin = minhaSkin;
//====================== PARTE PRINCIPAL DO MENU ============================//
if (botoesPrincipais == true) {
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 16, Screen.height / 2 - Screen.height / 8, Screen.width / 8, Screen.height / 14), "VOLTAR")) {
Mouse.PodeMover = true;
Time.timeScale = 1;
Cursor.visible = false;
botoesPrincipais = false;
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 16, Screen.height / 2 - Screen.height / 28, Screen.width / 8, Screen.height / 14), "QUALIDADE GRAFICA")) {
if (JanelaDosGraficos == false) {
JanelaDosGraficos = true;
} else {
JanelaDosGraficos = false;
}
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 16, Screen.height / 2 + Screen.height / 18, Screen.width / 8, Screen.height / 14), "SAIR")) {
Application.Quit ();
}
}
//====================== PARTE GRAFICA DO MENU ============================//
if (JanelaDosGraficos == true) {
botoesPrincipais = false;
//BOTOES
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 2.2f, Screen.height / 2 + Screen.height / 3, Screen.width / 8, Screen.height / 14), "VOLTAR")) {
JanelaDosGraficos = false;
botoesPrincipais = true;
Screen.lockCursor = true;
}
if (GUI.Button (new Rect (Screen.width / 2 + Screen.width / 5, Screen.height / 2 - Screen.height / 4, Screen.width / 8, Screen.height / 14), "JANELA")) {
Screen.fullScreen = !Screen.fullScreen;
}
// SALVAR PREFERENCIAS
if (GUI.Button (new Rect (Screen.width / 2 + Screen.width / 5, Screen.height / 2 + Screen.height / 3, Screen.width / 8, Screen.height / 14), "SALVAR PREF.")) {
PlayerPrefs.SetFloat ("VOLUME", VOLUME);
PlayerPrefs.SetFloat ("SENSIBILIDADE", SENSIBILIDADE);
}
// BARRAS HORIZONTAIS
VOLUME = GUI.HorizontalSlider (new Rect (Screen.width / 2 + Screen.width / 5, Screen.height / 2, Screen.width / 8, Screen.height / 14), VOLUME, minimoVOLUME, maximoVOLUME);
SENSIBILIDADE = GUI.HorizontalSlider (new Rect (Screen.width / 2 + Screen.width / 5, Screen.height / 2 + Screen.height / 5, Screen.width / 8, Screen.height / 14), SENSIBILIDADE, minimoSENS, maximoSENS);
//=============================== PARTE GRAFICA QUALIDADES ============================//
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 3, Screen.height / 2 - Screen.height / 4, Screen.width / 8, Screen.height / 14), "PESSIMO")) {
QualitySettings.SetQualityLevel (0);
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 3, Screen.height / 2 - Screen.height / 6, Screen.width / 8, Screen.height / 14), "RUIM")) {
QualitySettings.SetQualityLevel (1);
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 3, Screen.height / 2 - Screen.height / 12, Screen.width / 8, Screen.height / 14), "SIMPLES")) {
QualitySettings.SetQualityLevel (2);
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 3, Screen.height / 2, Screen.width / 8, Screen.height / 14), "BOM")) {
QualitySettings.SetQualityLevel (3);
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 3, Screen.height / 2 + Screen.height / 12, Screen.width / 8, Screen.height / 14), "BONITO")) {
QualitySettings.SetQualityLevel (4);
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 3, Screen.height / 2 + Screen.height / 6, Screen.width / 8, Screen.height / 14), "FANTASTICO")) {
QualitySettings.SetQualityLevel (5);
}
//=============================== PARTE GRAFICA RESOLUÇOES ============================//
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 16, Screen.height / 2 - Screen.height / 4, Screen.width / 8, Screen.height / 14), "640x480")) {
Screen.SetResolution (640, 480, true);
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 16, Screen.height / 2 - Screen.height / 6, Screen.width / 8, Screen.height / 14), "800x600")) {
Screen.SetResolution (800, 600, true);
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 16, Screen.height / 2 - Screen.height / 12, Screen.width / 8, Screen.height / 14), "1024x768")) {
Screen.SetResolution (1024, 768, true);
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 16, Screen.height / 2, Screen.width / 8, Screen.height / 14), "1280x720")) {
Screen.SetResolution (1280, 720, true);
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 16, Screen.height / 2 + Screen.height / 12, Screen.width / 8, Screen.height / 14), "1280x800")) {
Screen.SetResolution (1280, 800, true);
}
if (GUI.Button (new Rect (Screen.width / 2 - Screen.width / 16, Screen.height / 2 + Screen.height / 6, Screen.width / 8, Screen.height / 14), "1366x768")) {
Screen.SetResolution (1366, 768, true);
}
GUI.DrawTexture (new Rect (Screen.width / 2 - Screen.width / 3, Screen.height / 2 - Screen.height / 2.5f, Screen.width / 8, Screen.height / 14), QUALIDADE);
GUI.DrawTexture (new Rect (Screen.width / 2 - Screen.width / 16, Screen.height / 2 - Screen.height / 2.5f, Screen.width / 8, Screen.height / 14),RESOLUCOES);
GUI.DrawTexture (new Rect (Screen.width / 2 + Screen.width / 5, Screen.height / 2 - Screen.height / 2.5f, Screen.width / 8, Screen.height / 14), ModoJanela);
GUI.DrawTexture (new Rect (Screen.width / 2 + Screen.width / 5, Screen.height / 2 - Screen.height / 10, Screen.width / 8, Screen.height / 14), Volumes);
GUI.DrawTexture (new Rect (Screen.width / 2 + Screen.width / 5, Screen.height / 2 + Screen.height / 10, Screen.width / 8, Screen.height / 14), SensibilidadeMouse);
}
}
}
}
Lucas Garcia Frade- Avançado
- PONTOS : 3783
REPUTAÇÃO : 9
Idade : 23
Respeito as regras :
Re: [TUTORIAL] Menu pause ( AVANÇADO )
ja descobri o problema vlw
Lucas Garcia Frade- Avançado
- PONTOS : 3783
REPUTAÇÃO : 9
Idade : 23
Respeito as regras :
Re: [TUTORIAL] Menu pause ( AVANÇADO )
O controle da sensibilidade nao esta funcionando o que acontece?
Lucas Garcia Frade- Avançado
- PONTOS : 3783
REPUTAÇÃO : 9
Idade : 23
Respeito as regras :
Re: [TUTORIAL] Menu pause ( AVANÇADO )
O controle da sensibilidade é dependente do MouseLook do seu Player
se não estiver utilizando character controller para alterar a sensibilidade do MouseLook não terá efeito nenhum na sua cena...
se não estiver utilizando character controller para alterar a sensibilidade do MouseLook não terá efeito nenhum na sua cena...
Re: [TUTORIAL] Menu pause ( AVANÇADO )
o "mouse" ta dando erro!
fernando15014- Iniciante
- PONTOS : 3543
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Menu pause ( AVANÇADO )
Tem como mandar print do erro e o script que você está utilizando como mouseLook?
Re: [TUTORIAL] Menu pause ( AVANÇADO )
na unity 5 o First Person Controller não veio com o MouseLook na camera,
o que eu faço ?
o que eu faço ?
cosmoplay- Avançado
- PONTOS : 3798
REPUTAÇÃO : 45
Idade : 26
Respeito as regras :
Re: [TUTORIAL] Menu pause ( AVANÇADO )
Quando eu aperto o ESC, Para entrar no menu pause Como eu faço pra aparecer a imagem de uma camera ( que no caso seria o mapa) ?
Lucas Garcia Frade- Avançado
- PONTOS : 3783
REPUTAÇÃO : 9
Idade : 23
Respeito as regras :
Re: [TUTORIAL] Menu pause ( AVANÇADO )
tipo uma imagem no fundo do menu?
se for isso basta adicionar uma DrawTexture no inicio da Void OnGUI
se for isso basta adicionar uma DrawTexture no inicio da Void OnGUI
Re: [TUTORIAL] Menu pause ( AVANÇADO )
Na verdade seria um mapa onde mostraria onde estou e os locais e ficaria abaixo dos botoes...
Lucas Garcia Frade- Avançado
- PONTOS : 3783
REPUTAÇÃO : 9
Idade : 23
Respeito as regras :
Re: [TUTORIAL] Menu pause ( AVANÇADO )
Depois que responder a pergunta acima eu gostaria, por gentileza, que me falasse como eu faço pra (no script de trocar de câmeras) eu colocar 2 câmeras na mesma cena (que no caso seria a 1ª pessoa e o mini-mapa em cima).
Lucas Garcia Frade- Avançado
- PONTOS : 3783
REPUTAÇÃO : 9
Idade : 23
Respeito as regras :
Re: [TUTORIAL] Menu pause ( AVANÇADO )
Cara, isso é um tanto complexo, pois depende muito do tipo de Mapa que você tem... eu teria que elaborar um tutorial especifico sobre MiniMapa e Mapa no menu... não é nada muito complexo, más é um pouco trabalhoso ( principalmente a parte do Mapa no menu ou no Tab )
Re: [TUTORIAL] Menu pause ( AVANÇADO )
Tendi, mas vlw mesmo assim, tem cm vc apenas me dar uma base???
Lucas Garcia Frade- Avançado
- PONTOS : 3783
REPUTAÇÃO : 9
Idade : 23
Respeito as regras :
Re: [TUTORIAL] Menu pause ( AVANÇADO )
E como eu fasso tambem pra colocar 2 cameras na mesma cena? (uma a de 1ª pessoa e outra o mapinha)?
Lucas Garcia Frade- Avançado
- PONTOS : 3783
REPUTAÇÃO : 9
Idade : 23
Respeito as regras :
Re: [TUTORIAL] Menu pause ( AVANÇADO )
com o script de trocar de camera
Lucas Garcia Frade- Avançado
- PONTOS : 3783
REPUTAÇÃO : 9
Idade : 23
Respeito as regras :
Re: [TUTORIAL] Menu pause ( AVANÇADO )
N, lembra o tutorial do menu de pause, quero que quando eu apertar esc pra entrar no menu alem de entrar, aparecer um mapa debaixo dos botões, estilo harverest moon.
Lucas Garcia Frade- Avançado
- PONTOS : 3783
REPUTAÇÃO : 9
Idade : 23
Respeito as regras :
Re: [TUTORIAL] Menu pause ( AVANÇADO )
Tipo assim. Não é apenas a imagem de fundo mas sim uma camera (mapa) e onde eu estou naquele momento.
Lucas Garcia Frade- Avançado
- PONTOS : 3783
REPUTAÇÃO : 9
Idade : 23
Respeito as regras :
Lucas Garcia Frade- Avançado
- PONTOS : 3783
REPUTAÇÃO : 9
Idade : 23
Respeito as regras :
Re: [TUTORIAL] Menu pause ( AVANÇADO )
o meu deu esse erro Assets/Standard Assets/Characters/FirstPersonCharacter/Scripts/MouseLook.cs(4,14): error CS0101: The namespace `global::' already contains a definition for `MouseLook'
LeonradoGp- Membro
- PONTOS : 3637
REPUTAÇÃO : 3
Idade : 25
Respeito as regras :
Re: [TUTORIAL] Menu pause ( AVANÇADO )
LeonradoGp, o nome do seu script não é " MouseLook " más tem que ser...
tanto na engine quanto no script
tanto na engine quanto no script
Re: [TUTORIAL] Menu pause ( AVANÇADO )
Lucas garcia, basta colocar uma GUI.DrawTexture quando abrir o menu...
só que você teria que reconfigurar todas os " Rects " para posicionar em cima e o mapa em baixo...
só que você teria que reconfigurar todas os " Rects " para posicionar em cima e o mapa em baixo...
Re: [TUTORIAL] Menu pause ( AVANÇADO )
tem como mudar os botoes do menu
tantan.cards- Iniciante
- PONTOS : 3506
REPUTAÇÃO : 0
Re: [TUTORIAL] Menu pause ( AVANÇADO )
quando faço o script do menu da um erro pedindo mouselook quando modifico o mouse look da erro no first person controller ta complicadinho ;/
marcelo123- Membro
- PONTOS : 3537
REPUTAÇÃO : 1
Respeito as regras :
Re: [TUTORIAL] Menu pause ( AVANÇADO )
erro 1 > https://i.imgur.com/fqOnJb9.png
erro 2> https://i.imgur.com/vKM1Iv6.png
quando eu modifico o script MouseLook da 2 errinhos no script do FirstPersonController
erro nessa linha: m_MouseLook.Init(transform , m_Camera.transform); ''erro no Init acho''
erro nessa linha: m_MouseLook.LookRotation (transform, m_Camera.transform);
erro 2> https://i.imgur.com/vKM1Iv6.png
quando eu modifico o script MouseLook da 2 errinhos no script do FirstPersonController
erro nessa linha: m_MouseLook.Init(transform , m_Camera.transform); ''erro no Init acho''
erro nessa linha: m_MouseLook.LookRotation (transform, m_Camera.transform);
marcelo123- Membro
- PONTOS : 3537
REPUTAÇÃO : 1
Respeito as regras :
Re: [TUTORIAL] Menu pause ( AVANÇADO )
using System;
using UnityEngine;
using UnityStandardAssets.CrossPlatformInput;
using UnityStandardAssets.Utility;
using Random = UnityEngine.Random;
namespace UnityStandardAssets.Characters.FirstPerson
{
[RequireComponent(typeof (CharacterController))]
[RequireComponent(typeof (AudioSource))]
public class FirstPersonController : MonoBehaviour
{
[SerializeField] private bool m_IsWalking;
[SerializeField] private float m_WalkSpeed;
[SerializeField] private float m_RunSpeed;
[SerializeField] [Range(0f, 1f)] private float m_RunstepLenghten;
[SerializeField] private float m_JumpSpeed;
[SerializeField] private float m_StickToGroundForce;
[SerializeField] private float m_GravityMultiplier;
[SerializeField] private MouseLook m_MouseLook;
[SerializeField] private bool m_UseFovKick;
[SerializeField] private FOVKick m_FovKick = new FOVKick();
[SerializeField] private bool m_UseHeadBob;
[SerializeField] private CurveControlledBob m_HeadBob = new CurveControlledBob();
[SerializeField] private LerpControlledBob m_JumpBob = new LerpControlledBob();
[SerializeField] private float m_StepInterval;
[SerializeField] private AudioClip[] m_FootstepSounds; // an array of footstep sounds that will be randomly selected from.
[SerializeField] private AudioClip m_JumpSound; // the sound played when character leaves the ground.
[SerializeField] private AudioClip m_LandSound; // the sound played when character touches back on ground.
private Camera m_Camera;
private bool m_Jump;
private float m_YRotation;
private Vector2 m_Input;
private Vector3 m_MoveDir = Vector3.zero;
private CharacterController m_CharacterController;
private CollisionFlags m_CollisionFlags;
private bool m_PreviouslyGrounded;
private Vector3 m_OriginalCameraPosition;
private float m_StepCycle;
private float m_NextStep;
private bool m_Jumping;
private AudioSource m_AudioSource;
// Use this for initialization
private void Start()
{
m_CharacterController = GetComponent<CharacterController>();
m_Camera = Camera.main;
m_OriginalCameraPosition = m_Camera.transform.localPosition;
m_FovKick.Setup(m_Camera);
m_HeadBob.Setup(m_Camera, m_StepInterval);
m_StepCycle = 0f;
m_NextStep = m_StepCycle/2f;
m_Jumping = false;
m_AudioSource = GetComponent<AudioSource>();
m_MouseLook.Init(transform , m_Camera.transform);
}
// Update is called once per frame
private void Update()
{
RotateView();
// the jump state needs to read here to make sure it is not missed
if (!m_Jump)
{
m_Jump = CrossPlatformInputManager.GetButtonDown("Jump");
}
if (!m_PreviouslyGrounded && m_CharacterController.isGrounded)
{
StartCoroutine(m_JumpBob.DoBobCycle());
PlayLandingSound();
m_MoveDir.y = 0f;
m_Jumping = false;
}
if (!m_CharacterController.isGrounded && !m_Jumping && m_PreviouslyGrounded)
{
m_MoveDir.y = 0f;
}
m_PreviouslyGrounded = m_CharacterController.isGrounded;
}
private void PlayLandingSound()
{
m_AudioSource.clip = m_LandSound;
m_AudioSource.Play();
m_NextStep = m_StepCycle + .5f;
}
private void FixedUpdate()
{
float speed;
GetInput(out speed);
// always move along the camera forward as it is the direction that it being aimed at
Vector3 desiredMove = transform.forward*m_Input.y + transform.right*m_Input.x;
// get a normal for the surface that is being touched to move along it
RaycastHit hitInfo;
Physics.SphereCast(transform.position, m_CharacterController.radius, Vector3.down, out hitInfo,
m_CharacterController.height/2f);
desiredMove = Vector3.ProjectOnPlane(desiredMove, hitInfo.normal).normalized;
m_MoveDir.x = desiredMove.x*speed;
m_MoveDir.z = desiredMove.z*speed;
if (m_CharacterController.isGrounded)
{
m_MoveDir.y = -m_StickToGroundForce;
if (m_Jump)
{
m_MoveDir.y = m_JumpSpeed;
PlayJumpSound();
m_Jump = false;
m_Jumping = true;
}
}
else
{
m_MoveDir += Physics.gravity*m_GravityMultiplier*Time.fixedDeltaTime;
}
m_CollisionFlags = m_CharacterController.Move(m_MoveDir*Time.fixedDeltaTime);
ProgressStepCycle(speed);
UpdateCameraPosition(speed);
}
private void PlayJumpSound()
{
m_AudioSource.clip = m_JumpSound;
m_AudioSource.Play();
}
private void ProgressStepCycle(float speed)
{
if (m_CharacterController.velocity.sqrMagnitude > 0 && (m_Input.x != 0 || m_Input.y != 0))
{
m_StepCycle += (m_CharacterController.velocity.magnitude + (speed*(m_IsWalking ? 1f : m_RunstepLenghten)))*
Time.fixedDeltaTime;
}
if (!(m_StepCycle > m_NextStep))
{
return;
}
m_NextStep = m_StepCycle + m_StepInterval;
PlayFootStepAudio();
}
private void PlayFootStepAudio()
{
if (!m_CharacterController.isGrounded)
{
return;
}
// pick & play a random footstep sound from the array,
// excluding sound at index 0
int n = Random.Range(1, m_FootstepSounds.Length);
m_AudioSource.clip = m_FootstepSounds[n];
m_AudioSource.PlayOneShot(m_AudioSource.clip);
// move picked sound to index 0 so it's not picked next time
m_FootstepSounds[n] = m_FootstepSounds[0];
m_FootstepSounds[0] = m_AudioSource.clip;
}
private void UpdateCameraPosition(float speed)
{
Vector3 newCameraPosition;
if (!m_UseHeadBob)
{
return;
}
if (m_CharacterController.velocity.magnitude > 0 && m_CharacterController.isGrounded)
{
m_Camera.transform.localPosition =
m_HeadBob.DoHeadBob(m_CharacterController.velocity.magnitude +
(speed*(m_IsWalking ? 1f : m_RunstepLenghten)));
newCameraPosition = m_Camera.transform.localPosition;
newCameraPosition.y = m_Camera.transform.localPosition.y - m_JumpBob.Offset();
}
else
{
newCameraPosition = m_Camera.transform.localPosition;
newCameraPosition.y = m_OriginalCameraPosition.y - m_JumpBob.Offset();
}
m_Camera.transform.localPosition = newCameraPosition;
}
private void GetInput(out float speed)
{
// Read input
float horizontal = CrossPlatformInputManager.GetAxis("Horizontal");
float vertical = CrossPlatformInputManager.GetAxis("Vertical");
bool waswalking = m_IsWalking;
#if !MOBILE_INPUT
// On standalone builds, walk/run speed is modified by a key press.
// keep track of whether or not the character is walking or running
m_IsWalking = !Input.GetKey(KeyCode.LeftShift);
#endif
// set the desired speed to be walking or running
speed = m_IsWalking ? m_WalkSpeed : m_RunSpeed;
m_Input = new Vector2(horizontal, vertical);
// normalize input if it exceeds 1 in combined length:
if (m_Input.sqrMagnitude > 1)
{
m_Input.Normalize();
}
// handle speed change to give an fov kick
// only if the player is going to a run, is running and the fovkick is to be used
if (m_IsWalking != waswalking && m_UseFovKick && m_CharacterController.velocity.sqrMagnitude > 0)
{
StopAllCoroutines();
StartCoroutine(!m_IsWalking ? m_FovKick.FOVKickUp() : m_FovKick.FOVKickDown());
}
}
private void RotateView()
{
m_MouseLook.LookRotation (transform, m_Camera.transform);
}
private void OnControllerColliderHit(ControllerColliderHit hit)
{
Rigidbody body = hit.collider.attachedRigidbody;
//dont move the rigidbody if the character is on top of it
if (m_CollisionFlags == CollisionFlags.Below)
{
return;
}
if (body == null || body.isKinematic)
{
return;
}
body.AddForceAtPosition(m_CharacterController.velocity*0.1f, hit.point, ForceMode.Impulse);
}
}
}
using UnityEngine;
using UnityStandardAssets.CrossPlatformInput;
using UnityStandardAssets.Utility;
using Random = UnityEngine.Random;
namespace UnityStandardAssets.Characters.FirstPerson
{
[RequireComponent(typeof (CharacterController))]
[RequireComponent(typeof (AudioSource))]
public class FirstPersonController : MonoBehaviour
{
[SerializeField] private bool m_IsWalking;
[SerializeField] private float m_WalkSpeed;
[SerializeField] private float m_RunSpeed;
[SerializeField] [Range(0f, 1f)] private float m_RunstepLenghten;
[SerializeField] private float m_JumpSpeed;
[SerializeField] private float m_StickToGroundForce;
[SerializeField] private float m_GravityMultiplier;
[SerializeField] private MouseLook m_MouseLook;
[SerializeField] private bool m_UseFovKick;
[SerializeField] private FOVKick m_FovKick = new FOVKick();
[SerializeField] private bool m_UseHeadBob;
[SerializeField] private CurveControlledBob m_HeadBob = new CurveControlledBob();
[SerializeField] private LerpControlledBob m_JumpBob = new LerpControlledBob();
[SerializeField] private float m_StepInterval;
[SerializeField] private AudioClip[] m_FootstepSounds; // an array of footstep sounds that will be randomly selected from.
[SerializeField] private AudioClip m_JumpSound; // the sound played when character leaves the ground.
[SerializeField] private AudioClip m_LandSound; // the sound played when character touches back on ground.
private Camera m_Camera;
private bool m_Jump;
private float m_YRotation;
private Vector2 m_Input;
private Vector3 m_MoveDir = Vector3.zero;
private CharacterController m_CharacterController;
private CollisionFlags m_CollisionFlags;
private bool m_PreviouslyGrounded;
private Vector3 m_OriginalCameraPosition;
private float m_StepCycle;
private float m_NextStep;
private bool m_Jumping;
private AudioSource m_AudioSource;
// Use this for initialization
private void Start()
{
m_CharacterController = GetComponent<CharacterController>();
m_Camera = Camera.main;
m_OriginalCameraPosition = m_Camera.transform.localPosition;
m_FovKick.Setup(m_Camera);
m_HeadBob.Setup(m_Camera, m_StepInterval);
m_StepCycle = 0f;
m_NextStep = m_StepCycle/2f;
m_Jumping = false;
m_AudioSource = GetComponent<AudioSource>();
m_MouseLook.Init(transform , m_Camera.transform);
}
// Update is called once per frame
private void Update()
{
RotateView();
// the jump state needs to read here to make sure it is not missed
if (!m_Jump)
{
m_Jump = CrossPlatformInputManager.GetButtonDown("Jump");
}
if (!m_PreviouslyGrounded && m_CharacterController.isGrounded)
{
StartCoroutine(m_JumpBob.DoBobCycle());
PlayLandingSound();
m_MoveDir.y = 0f;
m_Jumping = false;
}
if (!m_CharacterController.isGrounded && !m_Jumping && m_PreviouslyGrounded)
{
m_MoveDir.y = 0f;
}
m_PreviouslyGrounded = m_CharacterController.isGrounded;
}
private void PlayLandingSound()
{
m_AudioSource.clip = m_LandSound;
m_AudioSource.Play();
m_NextStep = m_StepCycle + .5f;
}
private void FixedUpdate()
{
float speed;
GetInput(out speed);
// always move along the camera forward as it is the direction that it being aimed at
Vector3 desiredMove = transform.forward*m_Input.y + transform.right*m_Input.x;
// get a normal for the surface that is being touched to move along it
RaycastHit hitInfo;
Physics.SphereCast(transform.position, m_CharacterController.radius, Vector3.down, out hitInfo,
m_CharacterController.height/2f);
desiredMove = Vector3.ProjectOnPlane(desiredMove, hitInfo.normal).normalized;
m_MoveDir.x = desiredMove.x*speed;
m_MoveDir.z = desiredMove.z*speed;
if (m_CharacterController.isGrounded)
{
m_MoveDir.y = -m_StickToGroundForce;
if (m_Jump)
{
m_MoveDir.y = m_JumpSpeed;
PlayJumpSound();
m_Jump = false;
m_Jumping = true;
}
}
else
{
m_MoveDir += Physics.gravity*m_GravityMultiplier*Time.fixedDeltaTime;
}
m_CollisionFlags = m_CharacterController.Move(m_MoveDir*Time.fixedDeltaTime);
ProgressStepCycle(speed);
UpdateCameraPosition(speed);
}
private void PlayJumpSound()
{
m_AudioSource.clip = m_JumpSound;
m_AudioSource.Play();
}
private void ProgressStepCycle(float speed)
{
if (m_CharacterController.velocity.sqrMagnitude > 0 && (m_Input.x != 0 || m_Input.y != 0))
{
m_StepCycle += (m_CharacterController.velocity.magnitude + (speed*(m_IsWalking ? 1f : m_RunstepLenghten)))*
Time.fixedDeltaTime;
}
if (!(m_StepCycle > m_NextStep))
{
return;
}
m_NextStep = m_StepCycle + m_StepInterval;
PlayFootStepAudio();
}
private void PlayFootStepAudio()
{
if (!m_CharacterController.isGrounded)
{
return;
}
// pick & play a random footstep sound from the array,
// excluding sound at index 0
int n = Random.Range(1, m_FootstepSounds.Length);
m_AudioSource.clip = m_FootstepSounds[n];
m_AudioSource.PlayOneShot(m_AudioSource.clip);
// move picked sound to index 0 so it's not picked next time
m_FootstepSounds[n] = m_FootstepSounds[0];
m_FootstepSounds[0] = m_AudioSource.clip;
}
private void UpdateCameraPosition(float speed)
{
Vector3 newCameraPosition;
if (!m_UseHeadBob)
{
return;
}
if (m_CharacterController.velocity.magnitude > 0 && m_CharacterController.isGrounded)
{
m_Camera.transform.localPosition =
m_HeadBob.DoHeadBob(m_CharacterController.velocity.magnitude +
(speed*(m_IsWalking ? 1f : m_RunstepLenghten)));
newCameraPosition = m_Camera.transform.localPosition;
newCameraPosition.y = m_Camera.transform.localPosition.y - m_JumpBob.Offset();
}
else
{
newCameraPosition = m_Camera.transform.localPosition;
newCameraPosition.y = m_OriginalCameraPosition.y - m_JumpBob.Offset();
}
m_Camera.transform.localPosition = newCameraPosition;
}
private void GetInput(out float speed)
{
// Read input
float horizontal = CrossPlatformInputManager.GetAxis("Horizontal");
float vertical = CrossPlatformInputManager.GetAxis("Vertical");
bool waswalking = m_IsWalking;
#if !MOBILE_INPUT
// On standalone builds, walk/run speed is modified by a key press.
// keep track of whether or not the character is walking or running
m_IsWalking = !Input.GetKey(KeyCode.LeftShift);
#endif
// set the desired speed to be walking or running
speed = m_IsWalking ? m_WalkSpeed : m_RunSpeed;
m_Input = new Vector2(horizontal, vertical);
// normalize input if it exceeds 1 in combined length:
if (m_Input.sqrMagnitude > 1)
{
m_Input.Normalize();
}
// handle speed change to give an fov kick
// only if the player is going to a run, is running and the fovkick is to be used
if (m_IsWalking != waswalking && m_UseFovKick && m_CharacterController.velocity.sqrMagnitude > 0)
{
StopAllCoroutines();
StartCoroutine(!m_IsWalking ? m_FovKick.FOVKickUp() : m_FovKick.FOVKickDown());
}
}
private void RotateView()
{
m_MouseLook.LookRotation (transform, m_Camera.transform);
}
private void OnControllerColliderHit(ControllerColliderHit hit)
{
Rigidbody body = hit.collider.attachedRigidbody;
//dont move the rigidbody if the character is on top of it
if (m_CollisionFlags == CollisionFlags.Below)
{
return;
}
if (body == null || body.isKinematic)
{
return;
}
body.AddForceAtPosition(m_CharacterController.velocity*0.1f, hit.point, ForceMode.Impulse);
}
}
}
marcelo123- Membro
- PONTOS : 3537
REPUTAÇÃO : 1
Respeito as regras :
Re: [TUTORIAL] Menu pause ( AVANÇADO )
este não é o script do MouseLook...
tem que alterar o script do MouseLook
tem que alterar o script do MouseLook
Re: [TUTORIAL] Menu pause ( AVANÇADO )
eu alterei o script mas o erro foi nesse /;
o script do MouseLook eu peguei oque tava aqui no post
quando eu altero o script do mouse look da erro no script do first player controller
o script do MouseLook eu peguei oque tava aqui no post
quando eu altero o script do mouse look da erro no script do first player controller
marcelo123- Membro
- PONTOS : 3537
REPUTAÇÃO : 1
Respeito as regras :
Re: [TUTORIAL] Menu pause ( AVANÇADO )
a unity 5 mudou algumas coisas...
vou ter que fazer um tutorial mostrando como travar a camera por que alterou o modo de uso do MouseLook
vou ter que fazer um tutorial mostrando como travar a camera por que alterou o modo de uso do MouseLook
Re: [TUTORIAL] Menu pause ( AVANÇADO )
no meu a variavel podemover esta static mas o script do pause nao esta reconhecendo
viny123- Iniciante
- PONTOS : 3609
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Menu pause ( AVANÇADO )
unity4.6.1
viny123- Iniciante
- PONTOS : 3609
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Menu pause ( AVANÇADO )
precisarei ver os seus scripts, pois éra para estar funcionando...
Re: [TUTORIAL] Menu pause ( AVANÇADO )
O meu MouseLoook FICA SEM MOVIMETAÇÃO
Byanno7- Iniciante
- PONTOS : 3402
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Menu pause ( AVANÇADO )
Pra mim esse método de pause funciona apenas rodando o jogo na unity, quando crio uma build a tela de pause apenas pisca, parece que o "Time.timeScale = 0" ativa por apenas 1 frame ou algo assim. Estou usando Unity 5.2.0f3 mas isso acontece desde a 4.5. O que pode ser?
danizidio- Iniciante
- PONTOS : 3388
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Menu pause ( AVANÇADO )
Este script não é feito para Unity 5 e seu controlador novo... você precisa importas os controladores velhos se quiser usar estes scripts
Re: [TUTORIAL] Menu pause ( AVANÇADO )
Marcos ensina a como fazer o menu de pause na nova versao do unity por favor, porque agora ele nao trava a camera e quando clico em alguma opção o cursor some !
HWgamers- Iniciante
- PONTOS : 3518
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Menu pause ( AVANÇADO )
HWgamers escreveu:Marcos ensina a como fazer o menu de pause na nova versao do unity por favor, porque agora ele nao trava a camera e quando clico em alguma opção o cursor some !
Vlw por avisar... vou anotar o pedido e tentar trazer o mais breve possível, já que é algo bem procurado...
Re: [TUTORIAL] Menu pause ( AVANÇADO )
Marcos, o som do jogo continua ativado msm o jogo estando pausado, coloquei "AudioListener.volume = 0;" no primeiro if do script, e "AudioListener.volume = 1;" no primeiro else if, fora isso não mudei nada no script, sabe resolver?
MeverPlays- Mestre
- PONTOS : 3871
REPUTAÇÃO : 48
Áreas de atuação : SketchUp, Unity.
Respeito as regras :
Re: [TUTORIAL] Menu pause ( AVANÇADO )
Não tem como resolver com os GUI's msm? pq não gosto de usar UI's.
MeverPlays- Mestre
- PONTOS : 3871
REPUTAÇÃO : 48
Áreas de atuação : SketchUp, Unity.
Respeito as regras :
Página 1 de 2 • 1, 2
Tópicos semelhantes
» [TUTORIAL] Menu Pause AVANÇADO (Unity 5.3 ou superior)
» AJUDA COM MENU PAUSE AVANÇADO
» [TUTORIAL] Menu de pause
» Pause Menu: botões de "Restart" e "Menu"
» Menu Principal com Load Game e Menu de Pause com Save Game?
» AJUDA COM MENU PAUSE AVANÇADO
» [TUTORIAL] Menu de pause
» Pause Menu: botões de "Restart" e "Menu"
» Menu Principal com Load Game e Menu de Pause com Save Game?
Página 1 de 2
Permissões neste sub-fórum
Não podes responder a tópicos