MOUSE NA TELA
5 participantes
Página 1 de 1
MOUSE NA TELA
Eae pessoal, eu queria saber como que faz com que o ícone do mouse apareça na tela quando o player abrir o inventario ( tecla I). Tenho certeza que isso é uma coisa simples de se fazer, mas eu estou aprendendo a programar ainda.
Eu também gostaria de saber como que coloca um ícone de mouse personalizado.
Eu também gostaria de saber como que coloca um ícone de mouse personalizado.
leonardolopes- Avançado
- PONTOS : 1998
REPUTAÇÃO : 3
Respeito as regras :
Re: MOUSE NA TELA
Destravar e Mostrar/ocultar o cursor do mouse:
https://docs.unity3d.com/ScriptReference/Cursor-lockState.html
https://docs.unity3d.com/ScriptReference/Cursor-visible.html
Alterar o icone do cursor:
https://docs.unity3d.com/2018.2/Documentation/Manual/class-PlayerSettings.html
(Opção Default Cursor)
https://docs.unity3d.com/ScriptReference/Cursor-lockState.html
https://docs.unity3d.com/ScriptReference/Cursor-visible.html
Alterar o icone do cursor:
https://docs.unity3d.com/2018.2/Documentation/Manual/class-PlayerSettings.html
(Opção Default Cursor)
Última edição por Fagner em Qui Nov 21, 2019 12:25 am, editado 1 vez(es)
Fagner- Moderador
- PONTOS : 4443
REPUTAÇÃO : 667
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras :
leonardolopes- Avançado
- PONTOS : 1998
REPUTAÇÃO : 3
Respeito as regras :
Re: MOUSE NA TELA
Não deu certo, eu fiz assim:
Mas o Mouse não aparece. Qual é o problema?
- Código:
void Update () {
if (Input.GetKey (KeyCode.I)) {
Cursor.lockState = CursorLockMode.None ;
camera1.SetActive (!camera1.activeSelf);
camera2.SetActive (!camera2.activeSelf);
}
Mas o Mouse não aparece. Qual é o problema?
leonardolopes- Avançado
- PONTOS : 1998
REPUTAÇÃO : 3
Respeito as regras :
Re: MOUSE NA TELA
Alguém sabe como resolver?
leonardolopes- Avançado
- PONTOS : 1998
REPUTAÇÃO : 3
Respeito as regras :
Re: MOUSE NA TELA
Faltou um link na minha primeira resposta, esqueci de colar O/
https://docs.unity3d.com/ScriptReference/Cursor-visible.html
Você destrava o cursor com o lockstate e deixa visível com essa opção.
Uma dúvida, por que está usando duas câmeras pra mostrar o inventário?
https://docs.unity3d.com/ScriptReference/Cursor-visible.html
Você destrava o cursor com o lockstate e deixa visível com essa opção.
Uma dúvida, por que está usando duas câmeras pra mostrar o inventário?
Fagner- Moderador
- PONTOS : 4443
REPUTAÇÃO : 667
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras :
Re: MOUSE NA TELA
A câmera 1 é a do player e a câmera 2 é a do inventario
leonardolopes- Avançado
- PONTOS : 1998
REPUTAÇÃO : 3
Respeito as regras :
Re: MOUSE NA TELA
eu não entendo qual é o problema, já tentei de tudo, mas não funciona. O mouse não aparece na tela
- Código:
void Update () {
if (Input.GetKey (KeyCode.I)) {
Cursor.lockState = CursorLockMode.None ;
Cursor.visible = true;
COntrolador.enabled = false;
camera1.SetActive (!camera1.activeSelf);
camera2.SetActive (!camera2.activeSelf);
} else
Cursor.visible = false;
COntrolador.enabled = true;
leonardolopes- Avançado
- PONTOS : 1998
REPUTAÇÃO : 3
Respeito as regras :
Re: MOUSE NA TELA
leonardolopes escreveu:eu não entendo qual é o problema, já tentei de tudo, mas não funciona. O mouse não aparece na tela
- Código:
void Update () {
if (Input.GetKey (KeyCode.I)) {
Cursor.lockState = CursorLockMode.None ;
Cursor.visible = true;
COntrolador.enabled = false;
camera1.SetActive (!camera1.activeSelf);
camera2.SetActive (!camera2.activeSelf);
} else
Cursor.visible = false;
COntrolador.enabled = true;
Poderia postas o código completo? Até onde eu sei, a ativação de um inventário deveria ser feita por exemplo, com um GetKeyDown e não com um GetKey...
precisamos ver toda a estrutura do código.
Re: MOUSE NA TELA
Essa é toda parte do inventario, o código tem outras coisas do player
leonardolopes- Avançado
- PONTOS : 1998
REPUTAÇÃO : 3
Respeito as regras :
Re: MOUSE NA TELA
Mas o script é esse :
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using System.Linq;
using UnityStandardAssets.Characters.FirstPerson;
[RequireComponent(typeof(FirstPersonController1))]
public class UIManager : MonoBehaviour {
public Image VIDABar;
public Slider STAMINABar;
public float PERDA;
public float GANHO;
private GameObject CuboDP;
public GameObject madIcon;
public Text aperteE;
public GameObject camera1;
public GameObject camera2;
private FirstPersonController1 COntrolador;
bool painelAtivo;
void Awake(){
COntrolador = GetComponent<FirstPersonController1> ();
}
void Start () {
CuboDP = GameObject.Find ("CubeDePreview");
aperteE.enabled = false;
camera2.SetActive(false);
}
// Update is called once per frame
void Update () {
if (Input.GetKey (KeyCode.I))
{
Cursor.visible = true;
COntrolador.enabled = false;
camera1.SetActive (!camera1.activeSelf);
camera2.SetActive (!camera2.activeSelf);
} else
Cursor.visible = false;
COntrolador.enabled = true;
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
// STAMINA {
if (Input.GetKey (KeyCode.W) || Input.GetKey (KeyCode.S) || Input.GetKey (KeyCode.D) || Input.GetKey (KeyCode.A))
{
STAMINABar.value += GANHO / 2;
if (Input.GetKey (KeyCode.LeftShift))
{
STAMINABar.value -= PERDA;
}
}
else
{
STAMINABar.value += GANHO;
}
// STAMINA }
if (Physics.Raycast (ray, out hit, 15))
{
if (hit.collider.tag == "graveto")
{
if (hit.distance <= 3)
{
if (Input.GetKeyDown (KeyCode.E))
{
ganha ();
Destroy (hit.collider.gameObject);
}
}
}
}
}
void ganha ()
{
CuboDP.GetComponent<construir> ().madeiras += 1;
GameObject a = Instantiate (madIcon);
}
public void Dano (float dmg){
VIDABar.fillAmount -= dmg;
}
}
Última edição por Fagner em Qua Nov 20, 2019 11:37 pm, editado 1 vez(es) (Motivo da edição : Colocar código na codebox para facilitar a leitura.)
leonardolopes- Avançado
- PONTOS : 1998
REPUTAÇÃO : 3
Respeito as regras :
Re: MOUSE NA TELA
O problema está no seu teste de condição, você habilita o cursor com a tecla ( i ), mas na sua Update() o cursor.visible recebe false a cada frame, pois você não vai ficar apertando ( i ) o tempo todo;
Como o Marcos disse, você deve usar o GetKeyDown() nesse caso;
Seu else está sem as chaves, seja lá o que ele tenta fazer, só executa a primeira linha depois dele, e ainda que funcionasse, ainda não faria o que você quer;
Esse FirstPersonController1 é escrito assim mesmo? não uso esses assets faz uma vida...
Lembrando que só conferi a parte do cursor, não verifiquei outros erros pois tem pacotes aí que não possuo.
Como o Marcos disse, você deve usar o GetKeyDown() nesse caso;
Seu else está sem as chaves, seja lá o que ele tenta fazer, só executa a primeira linha depois dele, e ainda que funcionasse, ainda não faria o que você quer;
Esse FirstPersonController1 é escrito assim mesmo? não uso esses assets faz uma vida...
Lembrando que só conferi a parte do cursor, não verifiquei outros erros pois tem pacotes aí que não possuo.
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using System.Linq;
using UnityStandardAssets.Characters.FirstPerson;
[RequireComponent(typeof(FirstPersonController1))]
public class UIManager : MonoBehaviour
{
public Image VIDABar;
public Slider STAMINABar;
public float PERDA;
public float GANHO;
private GameObject CuboDP;
public GameObject madIcon;
public Text aperteE;
public GameObject camerajogo;
public GameObject cameraInventario;
private FirstPersonController1 COntrolador;
bool painelAtivo;
void Awake()
{
COntrolador = GetComponent<FirstPersonController1>();
}
void Start()
{
CuboDP = GameObject.Find("CubeDePreview");
aperteE.enabled = false;
cameraInventario.SetActive(false);
}
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.I))
{
camerajogo.SetActive(!camerajogo.activeSelf);
cameraInventario.SetActive(!cameraInventario.activeSelf); //Se cameraInventario estiver ativa
Cursor.visible = cameraInventario.activeSelf; //O cursor recebe true
COntrolador.enabled = !cameraInventario.activeSelf; //O controlador recebe falso
}
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
// STAMINA {
if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.A))
{
STAMINABar.value += GANHO / 2;
if (Input.GetKey(KeyCode.LeftShift))
{
STAMINABar.value -= PERDA;
}
}
else
{
STAMINABar.value += GANHO;
}
// STAMINA }
if (Physics.Raycast(ray, out hit, 15))
{
if (hit.collider.tag == "graveto")
{
if (hit.distance <= 3)
{
if (Input.GetKeyDown(KeyCode.E))
{
ganha();
Destroy(hit.collider.gameObject);
}
}
}
}
}
void ganha()
{
CuboDP.GetComponent<construir>().madeiras += 1;
GameObject a = Instantiate(madIcon);
}
public void Dano(float dmg)
{
VIDABar.fillAmount -= dmg;
}
}
Fagner- Moderador
- PONTOS : 4443
REPUTAÇÃO : 667
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras :
Re: MOUSE NA TELA
O cursor do mouse aparece e some quando aperto I.
Esse FirstPersonController1 é uma modificação do original
Esse FirstPersonController1 é uma modificação do original
leonardolopes- Avançado
- PONTOS : 1998
REPUTAÇÃO : 3
Respeito as regras :
Re: MOUSE NA TELA
Existe outra maneira de fazer o mouse aparecer? Faz uns 3 dias que estou mexendo com isso
leonardolopes- Avançado
- PONTOS : 1998
REPUTAÇÃO : 3
Respeito as regras :
Re: MOUSE NA TELA
Tem o GetButtonDown mas é a mesma coisa(soq diferente), mano é só mudar aquele if(Input.GetKey(KeyCode.I)) pra if(Input.GetKeyDown e mais nada praticamente ;-;leonardolopes escreveu:Existe outra maneira de fazer o mouse aparecer? Faz uns 3 dias que estou mexendo com isso
Re: MOUSE NA TELA
Em tese, era pro código que eu mandei funcionar, você testou pelo menos?leonardolopes escreveu:Existe outra maneira de fazer o mouse aparecer? Faz uns 3 dias que estou mexendo com isso
Fagner- Moderador
- PONTOS : 4443
REPUTAÇÃO : 667
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras :
Re: MOUSE NA TELA
provavelmente vc ta no editor,e no editor vc a aperta esc pra mostrar o o mouseleonardolopes escreveu:O cursor do mouse aparece e some quando aperto I.
Esse FirstPersonController1 é uma modificação do original
diegopds- Mestre
- PONTOS : 3420
REPUTAÇÃO : 52
Idade : 26
Respeito as regras :
Re: MOUSE NA TELA
diegopds escreveu:provavelmente vc ta no editor,e no editor vc a aperta esc pra mostrar o o mouseleonardolopes escreveu:O cursor do mouse aparece e some quando aperto I.
Esse FirstPersonController1 é uma modificação do original
e como eu vou resolver isso?
leonardolopes- Avançado
- PONTOS : 1998
REPUTAÇÃO : 3
Respeito as regras :
Tópicos semelhantes
» [TUTORIAL] Desenhar na tela com o MOUSE
» [RESOLVIDO] Ocultar mouse na tela
» Como criar varias tela na mesma tela
» Como fazer para aparecer um objeto na tela ao clicar com o mouse ou apertar um botão?
» sensibilidade do mouse
» [RESOLVIDO] Ocultar mouse na tela
» Como criar varias tela na mesma tela
» Como fazer para aparecer um objeto na tela ao clicar com o mouse ou apertar um botão?
» sensibilidade do mouse
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos