Como colocar uma mira no lugar do cursor do mouse
4 participantes
Página 1 de 1
Como colocar uma mira no lugar do cursor do mouse
Eu acho que é algo simples, porém acabei pesquisando e a maioria só ensina como trocar o cursor do mouse no jogo todo, eu gostaria de adicionar a mira só após a pessoa dar play no menu, no caso seria apenas na cena em que o jogo começa.
darkrj- Avançado
- PONTOS : 1974
REPUTAÇÃO : 15
Respeito as regras :
Re: Como colocar uma mira no lugar do cursor do mouse
Use esse método: https://docs.unity3d.com/ScriptReference/Cursor.SetCursor.html
NKKF- ProgramadorMaster
-
PONTOS : 4467
REPUTAÇÃO : 574
Idade : 19
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras :
Re: Como colocar uma mira no lugar do cursor do mouse
olá, tentei usar isto ai mas não deu certo, não sei o que houve, estou usando o new input system, ja tentei varios tutoriais (usei gameObject e texture2d), nenhum usa a mira, ate mudei o cursor como vi no forum aqui mas ali mudaria cursor geral do projeto.NKKF escreveu:Use esse método: https://docs.unity3d.com/ScriptReference/Cursor.SetCursor.html
quero fazer algo como light gun game para arcade. como no exemplo ai, teria diferença em fazer 2D e 3D?
6ferraro6- Iniciante
- PONTOS : 914
REPUTAÇÃO : 0
Respeito as regras :
Re: Como colocar uma mira no lugar do cursor do mouse
Como o @NKKF disse, é só usar o setCursor(). só que você tem que dizer quando ele vai mudar pro padrão e quando ele vai ser a mira, se você só colocar isso numa start e esquecer lá, como você espera que o jogo saiba a hora que deve usar um cursor ou outro?
Isso aqui pode ajudar pra detectar que a cena mudou, o SceneManager.sceneLoaded é disparado sempre que a cena muda, então você pode checar pelo nome da nova cena se for a do game, nesse caso vira a mira, se não for, usa o cursor normal.
https://docs.unity3d.com/ScriptReference/SceneManagement.SceneManager-sceneLoaded.html
Isso aqui pode ajudar pra detectar que a cena mudou, o SceneManager.sceneLoaded é disparado sempre que a cena muda, então você pode checar pelo nome da nova cena se for a do game, nesse caso vira a mira, se não for, usa o cursor normal.
https://docs.unity3d.com/ScriptReference/SceneManagement.SceneManager-sceneLoaded.html
Fagner- Moderador
-
PONTOS : 4091
REPUTAÇÃO : 665
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras :
Re: Como colocar uma mira no lugar do cursor do mouse
certo vou ver isto ai, por enquanto ainda estou fazendo so a mira para depois migrar, estou aqui tentativa e erro as cegas....Fagner escreveu:Como o @NKKF disse, é só usar o setCursor(). só que você tem que dizer quando ele vai mudar pro padrão e quando ele vai ser a mira, se você só colocar isso numa start e esquecer lá, como você espera que o jogo saiba a hora que deve usar um cursor ou outro?
Isso aqui pode ajudar pra detectar que a cena mudou, o SceneManager.sceneLoaded é disparado sempre que a cena muda, então você pode checar pelo nome da nova cena se for a do game, nesse caso vira a mira, se não for, usa o cursor normal.
https://docs.unity3d.com/ScriptReference/SceneManagement.SceneManager-sceneLoaded.html
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
public class OnMouse : MonoBehaviour
{
//public Texture2D cursorTexture;
//public CursorMode cursorMode = CursorMode.Auto;
//public Vector2 hotSpot = Vector2.zero;
public GameObject crosshairs;
private Vector2 target;
public bool mouseDown = false;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
//target = transform.GetComponent<Camera>().ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, Input.mousePosition.z));
//Vector2 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
crosshairs.transform.position = new Vector2(target.x, target.y);
}
public void onlook(InputAction.CallbackContext ctx)
{
if (ctx.phase == InputActionPhase.Performed && Physics.Raycast(Camera.main.ScreenPointToRay(Mouse.current.position.ReadValue()), out RaycastHit hit)) ;
{
print("movendo");
}
}
//public void MouseClick(InputAction.CallbackContext ctx)
//{
// if (ctx.performed)
// {
// }
//}
public void OnFire(InputAction.CallbackContext ctx)
{
if (ctx.performed)
{
http://Cursor.SetCursor(cursorTexture, hotSpot, cursorMode);
mouseDown = true;
print("click");
}
}
//public void OnCursorPoint()
//{
// Vector2 mousePos = Camera.main.ScreenToWorldPoint(Mouse.current.position.ReadValue());
// RaycastHit2D hit = Physics2D.Raycast(mousePos, Vector2.zero);
// if (hit)
// {
// print("Movendo");
// }
//}
}
6ferraro6- Iniciante
- PONTOS : 914
REPUTAÇÃO : 0
Respeito as regras :

» Como mudar o cursor do mouse
» Como posso chamar o Cursor do Mouse no script?
» Como fazer os inimigos atacarem o cursor do mouse?
» CURSOR DO MOUSE NÃO DESAPARECE AO CLICAR EM "JOGAR" NO MENU
» Como posso fazer pra atirar onde o cursor do mouse está (UNITY 2D)
» Como posso chamar o Cursor do Mouse no script?
» Como fazer os inimigos atacarem o cursor do mouse?
» CURSOR DO MOUSE NÃO DESAPARECE AO CLICAR EM "JOGAR" NO MENU
» Como posso fazer pra atirar onde o cursor do mouse está (UNITY 2D)
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos