Duvida com troca de sprite quando muda camera
3 participantes
Página 1 de 1
Duvida com troca de sprite quando muda camera
Olá,bom meu jogo ele é assim mais ou menos (é um video meio antigo):
E eu adicionei um negoso que quando você aperta certos botoes a camera troca de posição somente para o jogador poder dar uma espiada para outras lados:
https://youtu.be/xQcpZIXwPDo
Mas,voces podem perceber que quando a camera fica de outro angulo,fica na cara que o meu personagem é um papel.Então eu queria que quando eu apertasse o botão,ele iria mudar a sua sprite para uma adequada.Quando voce aperta a letra Q a camera fica do lado esquerdo do personagem e quando solta ele volta a normal,e quando a aperta a letra E ele vai para o lado direito do personagem e quando solta vai para o normal.quando a camera fica do lado direito,a sprite do personagem deveria ficar em uma dele virado para frente se é que me entende e quando solta-se ele voltaria a sua normal.Para dar uma enganadinha ao jogador para parecer um personagem totalmente 3D..................Se não entendeu eu posto um desenho se quiser
o script que fiz para a camera: (camera3PE = camera 3 pessoa esquerda, camera 3PD = camera 3 pessoa direita, camera2D = camera normal)
Eu tentei fazer assim,mas nao funcionou:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TrocaDeCameras : MonoBehaviour {
public GameObject Camera2D, Camera3PD, Camera3PE;
private Animator ControlAgachar;
public string direcao = ("Direita");
// Use this for initialization
void Start () {
Camera3PD.SetActive (false);
Camera3PE.SetActive (false);
Camera2D.SetActive (true);
ControlAgachar = GetComponent<Animator> ();
}
// Update is called once per frame
void Update () {
if (Input.GetKey (KeyCode.E)) {
direcao = ("Esquerda");
Camera2D.SetActive (false);
Camera3PD.SetActive (false);
Camera3PE.SetActive (true);
ControlAgachar.SetInteger ("Condição", ;
}
if (Input.GetKeyUp (KeyCode.E)) {
direcao = ("2D");
Camera2D.SetActive (true);
Camera3PD.SetActive (false);
Camera3PE.SetActive (false);
ControlAgachar.SetInteger ("Condição", 2);
}
if (Input.GetKey (KeyCode.Q)) {
direcao = ("Direita");
Camera2D.SetActive (false);
Camera3PD.SetActive (true);
Camera3PE.SetActive (false);
ControlAgachar.SetInteger ("Condição", 6);
}
if (Input.GetKeyUp (KeyCode.Q)) {
direcao = ("2D");
Camera2D.SetActive (true);
Camera3PD.SetActive (false);
Camera3PE.SetActive (false);
ControlAgachar.SetInteger ("Condição", 2);
}
}
}
E eu adicionei um negoso que quando você aperta certos botoes a camera troca de posição somente para o jogador poder dar uma espiada para outras lados:
https://youtu.be/xQcpZIXwPDo
Mas,voces podem perceber que quando a camera fica de outro angulo,fica na cara que o meu personagem é um papel.Então eu queria que quando eu apertasse o botão,ele iria mudar a sua sprite para uma adequada.Quando voce aperta a letra Q a camera fica do lado esquerdo do personagem e quando solta ele volta a normal,e quando a aperta a letra E ele vai para o lado direito do personagem e quando solta vai para o normal.quando a camera fica do lado direito,a sprite do personagem deveria ficar em uma dele virado para frente se é que me entende e quando solta-se ele voltaria a sua normal.Para dar uma enganadinha ao jogador para parecer um personagem totalmente 3D..................Se não entendeu eu posto um desenho se quiser
o script que fiz para a camera: (camera3PE = camera 3 pessoa esquerda, camera 3PD = camera 3 pessoa direita, camera2D = camera normal)
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TrocaDeCameras : MonoBehaviour {
public GameObject Camera2D, Camera3PD, Camera3PE;
public string direcao = ("Direita");
// Use this for initialization
void Start () {
Camera3PD.SetActive (false);
Camera3PE.SetActive (false);
Camera2D.SetActive (true);
}
// Update is called once per frame
void Update () {
if (Input.GetKey (KeyCode.E)) {
direcao = ("Esquerda");
Camera2D.SetActive (false);
Camera3PD.SetActive (false);
Camera3PE.SetActive (true);
}
if (Input.GetKeyUp (KeyCode.E)) {
direcao = ("2D");
Camera2D.SetActive (true);
Camera3PD.SetActive (false);
Camera3PE.SetActive (false);
}
if (Input.GetKey (KeyCode.Q)) {
direcao = ("Direita");
Camera2D.SetActive (false);
Camera3PD.SetActive (true);
Camera3PE.SetActive (false);
}
if (Input.GetKeyUp (KeyCode.Q)) {
direcao = ("2D");
Camera2D.SetActive (true);
Camera3PD.SetActive (false);
Camera3PE.SetActive (false);
}
}
}
Eu tentei fazer assim,mas nao funcionou:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TrocaDeCameras : MonoBehaviour {
public GameObject Camera2D, Camera3PD, Camera3PE;
private Animator ControlAgachar;
public string direcao = ("Direita");
// Use this for initialization
void Start () {
Camera3PD.SetActive (false);
Camera3PE.SetActive (false);
Camera2D.SetActive (true);
ControlAgachar = GetComponent<Animator> ();
}
// Update is called once per frame
void Update () {
if (Input.GetKey (KeyCode.E)) {
direcao = ("Esquerda");
Camera2D.SetActive (false);
Camera3PD.SetActive (false);
Camera3PE.SetActive (true);
ControlAgachar.SetInteger ("Condição", ;
}
if (Input.GetKeyUp (KeyCode.E)) {
direcao = ("2D");
Camera2D.SetActive (true);
Camera3PD.SetActive (false);
Camera3PE.SetActive (false);
ControlAgachar.SetInteger ("Condição", 2);
}
if (Input.GetKey (KeyCode.Q)) {
direcao = ("Direita");
Camera2D.SetActive (false);
Camera3PD.SetActive (true);
Camera3PE.SetActive (false);
ControlAgachar.SetInteger ("Condição", 6);
}
if (Input.GetKeyUp (KeyCode.Q)) {
direcao = ("2D");
Camera2D.SetActive (true);
Camera3PD.SetActive (false);
Camera3PE.SetActive (false);
ControlAgachar.SetInteger ("Condição", 2);
}
}
}
Re: Duvida com troca de sprite quando muda camera
Você pode verificar qual camera está ativada, caso esteja ativada alguma dos lados você faz ele receber a rotação contraria da camera e executar a animação.
rafaelllsd- ProgramadorMaster
- PONTOS : 5244
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: Duvida com troca de sprite quando muda camera
Eu fiz isso aqui:
quando começa o jogo,a animação do personagem fica travada e nao vai para nenhuma e da erro
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TrocaDeCameras : MonoBehaviour {
public GameObject Camera2D, Camera3PD, Camera3PE;
private Animator ControlAgachar;
public string Camera = ("Normal");
// Use this for initialization
void Start () {
Camera3PD.SetActive (false);
Camera3PE.SetActive (false);
Camera2D.SetActive (true);
ControlAgachar = GetComponent<Animator> ();
}
// Update is called once per frame
void Update () {
if (Input.GetKey (KeyCode.E)) {
Camera = ("Esquerda");
Camera2D.SetActive (false);
Camera3PD.SetActive (false);
Camera3PE.SetActive (true);
}
if (Input.GetKeyUp (KeyCode.E)) {
Camera = ("Normal");
Camera2D.SetActive (true);
Camera3PD.SetActive (false);
Camera3PE.SetActive (false);
}
if (Input.GetKey (KeyCode.Q)) {
Camera = ("Direita");
Camera2D.SetActive (false);
Camera3PD.SetActive (true);
Camera3PE.SetActive (false);
}
if (Input.GetKeyUp (KeyCode.Q)) {
Camera = ("Normal");
Camera2D.SetActive (true);
Camera3PD.SetActive (false);
Camera3PE.SetActive (false);
}
if (Camera == "Direita") {
ControlAgachar.SetInteger ("Condição", 6);
}
if (Camera == "Esquerda") {
ControlAgachar.SetInteger ("Condição", 8);
}
if (Camera == "Normal") {
ControlAgachar.SetInteger ("Condição", 2);
}
}
}
quando começa o jogo,a animação do personagem fica travada e nao vai para nenhuma e da erro
Re: Duvida com troca de sprite quando muda camera
Fiz um exemplo pra você:
- Código:
public GameObject camera1,camera2,camera3;
void Start () {
}
void Update () {
if (camera1.activeInHierarchy) {
transform.eulerAngles = -camera1.transform.eulerAngles;
camera2.SetActive (false);
camera3.SetActive (false);
}
if (camera2.activeInHierarchy) {
transform.eulerAngles = -camera2.transform.eulerAngles;
camera1.SetActive (false);
camera3.SetActive (false);
}
if (camera3.activeInHierarchy) {
transform.eulerAngles = -camera3.transform.eulerAngles;
camera2.SetActive (false);
camera1.SetActive (false);
}
}
}
rafaelllsd- ProgramadorMaster
- PONTOS : 5244
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: Duvida com troca de sprite quando muda camera
A maneira mais fácil de fazer isso, sem código nem nada, seria duplicar o sprite do personagem, deixando na posição correta, tipo um BillboardDUT escreveu:vou ver
Fagner- Moderador
- PONTOS : 4445
REPUTAÇÃO : 667
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras :
Re: Duvida com troca de sprite quando muda camera
como eu faço isso?,e só duplicar a sprite e gira ela?
Re: Duvida com troca de sprite quando muda camera
fica assim o codigo?:
pois,a camera fica balançando pra cima e pra baixo locamente...........
como faz pra fazer aquele efeito dos jogos de fps antigo,tipo doom 1,duke nukem que os inimigos e objetos eram folhas que fica olhando pra voce nao importa que angulo voce esteja saca
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TrocaDeCameras : MonoBehaviour {
public GameObject camera1, camera2, camera3;
private Animator ControlAgachar;
public string Camera = ("Normal");
// Use this for initialization
void Start () {
camera2.SetActive (false);
camera3.SetActive (false);
camera1.SetActive (true);
ControlAgachar = GetComponent<Animator> ();
}
// Update is called once per frame
void Update () {
if (Input.GetKey (KeyCode.E)) {
Camera = ("Esquerda");
camera1.SetActive (false);
camera2.SetActive (false);
camera3.SetActive (true);
ControlAgachar.SetInteger ("Condição", 6);
}
if (Input.GetKeyUp (KeyCode.E)) {
Camera = ("Normal");
camera1.SetActive (true);
camera2.SetActive (false);
camera3.SetActive (false);
ControlAgachar.SetInteger ("Condição", 2);
}
if (Input.GetKey (KeyCode.Q)) {
Camera = ("Direita");
camera1.SetActive (false);
camera2.SetActive (true);
camera3.SetActive (false);
ControlAgachar.SetInteger ("Condição", 8);
}
if (Input.GetKeyUp (KeyCode.Q)) {
Camera = ("Normal");
camera1.SetActive (true);
camera2.SetActive (false);
camera3.SetActive (false);
ControlAgachar.SetInteger ("Condição", 2);
}
if (camera1.activeInHierarchy) {
transform.eulerAngles = -camera1.transform.eulerAngles;
camera2.SetActive (false);
camera3.SetActive (false);
}
if (camera2.activeInHierarchy) {
transform.eulerAngles = -camera2.transform.eulerAngles;
camera1.SetActive (false);
camera3.SetActive (false);
}
if (camera3.activeInHierarchy) {
transform.eulerAngles = -camera3.transform.eulerAngles;
camera2.SetActive (false);
camera1.SetActive (false);
}
}
}
pois,a camera fica balançando pra cima e pra baixo locamente...........
como faz pra fazer aquele efeito dos jogos de fps antigo,tipo doom 1,duke nukem que os inimigos e objetos eram folhas que fica olhando pra voce nao importa que angulo voce esteja saca
Re: Duvida com troca de sprite quando muda camera
Você faz um lookAt ignorando o eixo Y.
rafaelllsd- ProgramadorMaster
- PONTOS : 5244
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: Duvida com troca de sprite quando muda camera
Peguei esse script de exemplo:
- Código:
public Transform target;
public float speed;
void Start () {
}
void Update () {
var lookPos = target.position - transform.position;
lookPos.y = 0;
var rotation = Quaternion.LookRotation(lookPos);
transform.rotation = Quaternion.Slerp(transform.rotation, rotation, Time.deltaTime * speed);
}
}
rafaelllsd- ProgramadorMaster
- PONTOS : 5244
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: Duvida com troca de sprite quando muda camera
eu posso simplesmente jogar este codigo no meu personagem ou na camera?
Re: Duvida com troca de sprite quando muda camera
No caso seria no seu personagem.
rafaelllsd- ProgramadorMaster
- PONTOS : 5244
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: Duvida com troca de sprite quando muda camera
Bom,eu coloquei a camera nesse target e camera fica virada para o vão,quando aperta Q ou E,a camera vai,o personagem que é uma folha fica olhando pra camera certinho,mas a camera fica virando lentamente pro lado errado....perai vo faze um video
Tópicos semelhantes
» Sprite quando muda de animaçao muda de lugar e tamanho ajudem
» como fazer o player aparecer do outro lado da porta quando muda de cena?
» Quando Passar em um tigger Objeto Muda a Cor do Material
» Fazer um audio não parar de tocar mesmo quando muda de cena
» Como faço para a musica continuar tocando quando muda de cena?
» como fazer o player aparecer do outro lado da porta quando muda de cena?
» Quando Passar em um tigger Objeto Muda a Cor do Material
» Fazer um audio não parar de tocar mesmo quando muda de cena
» Como faço para a musica continuar tocando quando muda de cena?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos