SchultzGames
Para tirar dúvidas, crie um tópico especifico na área "Dúvidas em Geral" e aguarde ser respondido. Evite comentar em tópicos não relacionados a sua dúvida :D
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
Jogo Project Lazarus parte 2
Geração de Mundo
[TUTORIAL] mover personagem na direção da camera
como fazer um gameobject selecionar no código ao colidir com o mesmo
Dar dano no inimigo ao clicar nele
Como ATUALIZAR o jogo sem precisar ficar compilando toda hora? -
Como Fazer esse Giroflex (Link Video)
Quando uma Boolean ativar as outras duas nao podem ficar on.....
[ASSET] Personagem v0.5
Como Ativar e Desativar Emissao do Material Por C#
Como Fazer Carreta Unity Ultilizando o RCC
Problema com um jogo de tiro em 1D
Jogador não Subi na Plataforma
ola estou tentando colocar meu scrip so que ele da erro n sei pq ajuda
Como colocar uma mira no lugar do cursor do mouse
Unity 2018 - Ajuda com OnTriggerEnter e OnTriggerExit
meu script de Basic Runtime Occlusion Culling nao esta funcionando
[TUTORIAL] vibrar o dispositivo ao colidir com um objeto
como fazer para video rodar após cena inicial?
Como faço pro personagem correr na direção da câmera para Android
Pontuação e Click
Como tocar efeito sonoro apenas depois no momento que carrega a cena?
Otimização da Unity
Pontuação em barra
Como deixar a barra de vida fixa??
Elevador
Botões UI
Unable to merge Android manifests
Android SDK Build-tools component is not found (Por Favor Me Ajudem)
Sistema de Ranking com Leaderboard facebook na Unity
Spawnar Objetos aleatorios em lugares pre-definidos
Movimentação em primeira pessoa
Salvar a cada vez que pego um moeda binary formatter
Como fazer a câmera balançar de acordo com a suspensão do veículo?
Sistema de Escolha de Player no Multiplayer
Estou com problema com um script que está dando erro.
IA do jogo Pong
Bons exemplos brasileiros de inimigos em jogos de terror
mover objeto ao encostar em um trigger
[RESOLVIDO] Unity 2019.4.9f1 - Erro ao criar o APK
Plataforma Flutuante
Como passar o canvas com components de uma cena pra outra?
Problema com TERRAIN
[PROBLEMA] Unity 2018 - Nenhum script Monobehaviour no arquivo
wallrun em 1° pessoa e com rigidbody
Dúvida relacionada a comportamento de objetos
Aumentar e diminuir velocidade de uma animação
Caracteres estão sumindo em Text UI somente na Build WebGL
como fazer um chat simples no photon
Erro na exportação
Alguém tem script de movimentação 3D?
Não consigo desativar script de gameObject (C#)
Unity 2018.2 -Ajuda com sistema de SpawnPoint e respawn com Photon Bolt
Recarregar cena usando botão UI
Controler de player 2D
Combate corpo a corpo 2D
Tela de shop/market na unity
Dúvida sobre textura
Problemas para rotacionar objeto filho
Como Resolver ?? Android SDK Build-tools component is not found.....
Update APK - Arquivo de expansão [New Google Console]
Alguém mais tem tido problemas com Layermask [v2019.4.17]
error ao buildar para windows utilizando il2cpp [il2cpp.exe did not run !]
TUTORIAL POST-PROCESSING NA UNITY 2020.2.2 -do CANAL Netzado
Erro na atualização da unity
Minha camera esta girando de maneira brusca
[DICA] Deixar o Loop 'For' Mais Otimizado
[PEDIDO]Gostaria de reviews sinceras no meu jogo
problema de Textura do Sketchup
[TUTORIAL] Sistema de diálogo/mensagens na Unity
Como Fazer Camera do Euro Truck 2 (para Android)
[RESOLVIDO] NavMeshAgent parar
[PEDIDO] Unity2018 - 3DSURVIVAL - Beta Review
Configurar canvas com novas resoluções quad e 4k
Como fazer um objeto spawnar por vez em uma array
[RESOLVIDO] fazer uma barra que diga quanta "agua" eu tenho
[RESOLVIDO] Como fazer só checar uma vez no Update()
character blink on white
[TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5
Após um inimigo morrer, o outro surgir a partir de uma array
Acionamento da função OnTriggerEnter2D somente para o pai
Limitação de área 2d unity SOCORRO (com meu script)
POO
Duvida sobre iniciar o jogo com um character padrão
Loja no game, duvidas sobre voltar para a cena após usar a loja.
IA inimigo!
Como fazer com que objetos spawnem por vez em uma array
2 objetos utilizando mesmo script na hora de instanciar
Como definir um limite de itens guardados num inventário
O Collider não funciona
Dúvida em relação a Unity + MySql + PHP
Unity - Scriptable Objects [PT-BR]
Nao estou a conseguir mudar o transform.position do meu fps
Como aceder a pontuação correta no outro script
[TUTORIAL] Identificar qual a melhor qualidade gráfica baseada no Hardware
[DUVIDA]confirar automaticamente para cada hardware
Qual é a lógica do terreno do Minecraft?
a rotacao do player esta errada!
Não consigo mais abrir projeto nenhum na Unity!
Hoje à(s) 7:45 am
Ontem à(s) 2:38 pm
Ontem à(s) 12:32 pm
Seg Fev 22, 2021 8:30 pm
Seg Fev 22, 2021 7:47 pm
Seg Fev 22, 2021 6:14 pm
Dom Fev 21, 2021 1:01 pm
Dom Fev 21, 2021 12:00 pm
Sab Fev 20, 2021 9:54 pm
Sab Fev 20, 2021 3:45 pm
Sab Fev 20, 2021 1:57 pm
Sab Fev 20, 2021 12:19 pm
Sab Fev 20, 2021 12:11 pm
Sab Fev 20, 2021 12:05 pm
Sex Fev 19, 2021 8:49 pm
Sex Fev 19, 2021 5:03 pm
Sex Fev 19, 2021 4:56 pm
Sex Fev 19, 2021 1:02 pm
Sex Fev 19, 2021 11:34 am
Sex Fev 19, 2021 10:04 am
Qui Fev 18, 2021 9:21 pm
Qui Fev 18, 2021 7:45 pm
Qui Fev 18, 2021 7:28 pm
Qui Fev 18, 2021 10:37 am
Qua Fev 17, 2021 7:25 pm
Qua Fev 17, 2021 3:55 pm
Qua Fev 17, 2021 12:56 pm
Qua Fev 17, 2021 12:10 pm
Qua Fev 17, 2021 10:02 am
Ter Fev 16, 2021 1:13 pm
Ter Fev 16, 2021 12:55 pm
Ter Fev 16, 2021 11:29 am
Ter Fev 16, 2021 1:43 am
Ter Fev 16, 2021 12:11 am
Seg Fev 15, 2021 6:56 pm
Seg Fev 15, 2021 3:26 pm
Seg Fev 15, 2021 2:13 pm
Seg Fev 15, 2021 12:45 pm
Seg Fev 15, 2021 10:31 am
Seg Fev 15, 2021 12:44 am
Dom Fev 14, 2021 1:13 pm
Dom Fev 14, 2021 9:26 am
Sab Fev 13, 2021 4:31 pm
Sab Fev 13, 2021 1:39 pm
Sab Fev 13, 2021 10:07 am
Sab Fev 13, 2021 9:25 am
Sab Fev 13, 2021 12:02 am
Sex Fev 12, 2021 8:06 pm
Qui Fev 11, 2021 1:34 am
Qua Fev 10, 2021 9:12 pm
Ter Fev 09, 2021 9:36 pm
Ter Fev 09, 2021 12:01 am
Seg Fev 08, 2021 7:26 pm
Seg Fev 08, 2021 2:55 pm
Seg Fev 08, 2021 12:25 pm
Seg Fev 08, 2021 11:43 am
Sex Fev 05, 2021 11:26 pm
Sex Fev 05, 2021 5:01 pm
Sex Fev 05, 2021 2:37 pm
Sex Fev 05, 2021 1:11 pm
Sex Fev 05, 2021 12:45 pm
Sex Fev 05, 2021 11:23 am
Sex Fev 05, 2021 10:45 am
Qua Fev 03, 2021 10:02 pm
Qua Fev 03, 2021 4:45 pm
Qua Fev 03, 2021 3:24 pm
Qua Fev 03, 2021 1:54 pm
Qua Fev 03, 2021 1:50 pm
Qua Fev 03, 2021 12:05 pm
Qua Fev 03, 2021 3:23 am
Ter Fev 02, 2021 11:11 pm
Ter Fev 02, 2021 3:07 pm
Seg Fev 01, 2021 9:13 pm
Seg Fev 01, 2021 8:52 pm
Seg Fev 01, 2021 4:56 pm
Seg Fev 01, 2021 3:43 pm
Seg Fev 01, 2021 2:57 pm
Seg Fev 01, 2021 2:50 pm
Seg Fev 01, 2021 9:38 am
Dom Jan 31, 2021 3:17 pm
Dom Jan 31, 2021 11:53 am
Sab Jan 30, 2021 6:48 am
Sex Jan 29, 2021 12:43 pm
Sex Jan 29, 2021 12:58 am
Sex Jan 29, 2021 12:50 am
Qui Jan 28, 2021 7:54 pm
Qui Jan 28, 2021 2:55 pm
Qui Jan 28, 2021 9:00 am
Qui Jan 28, 2021 8:55 am
Qua Jan 27, 2021 11:11 am
Qua Jan 27, 2021 11:01 am
Ter Jan 26, 2021 11:36 pm
Ter Jan 26, 2021 5:53 pm
Ter Jan 26, 2021 5:31 pm
Seg Jan 25, 2021 5:39 pm
Seg Jan 25, 2021 4:58 pm
Seg Jan 25, 2021 2:51 pm
Seg Jan 25, 2021 9:56 am
Seg Jan 25, 2021 9:24 am
Patrick
MiguelAon
SauloeArthur
rodrigovitao
FelipeSouza11
verme1311
JulioWinchester
EricknhYT
FelipeSouza11
EricknhYT
EricknhYT
tautologias345
NKKF
NKKF
NKKF
ProBrStalker
LlucasBRDev
NKKF
ComicSans
SauloeArthur
Fagner
rafaelPortugal
rafaelPortugal
SauloeArthur
Konoiaro
MiguelAon
Charlesoff
Callyde Jr
EricknhYT
Franttyck
FelipeSouza11
SauloeArthur
joaoguil3
Fagner
TIKO
NKKF
darkrj
JohnRambo
SauloeArthur
Arcebispo
dutrabr100
speedluk
Triskal
ProBrStalker
MiguelAon
Magnatah
rodrigold
daniel.karling
gui78h3
Edivandro2706
NKKF
wooZbr
Pokedlg
SauloeArthur
Pokedlg
KonigOficial
Pokedlg
ffabim
pdsimulador
EricknhYT
chicotx56
NickDev
Valakinhas
kaykyscaranni1
JulioWinchester
capim22
NKKF
diegopds
Mid
MayLeone
EricknhYT
DVargas
ProBrStalker
Fagner
Magnatah
Sasuke rei
Sasuke rei
Fagner
walney
Pokedlg
wanderson888888
pedrodj321
giowde
acefogo
acefogo
Callyde Jr
darkrj
dutrabr100
dutrabr100
SauloeArthur
mateus.ribas
NKKF
Pokedlg
Pokedlg
Pokedlg
Pokedlg
Sasuke rei
Pokedlg
sopturn

Problema mudar de sprite sempre que seja adicionado um novo sprite a lista

Página 2 de 2 Anterior  1, 2

Ir em baixo

DÚVIDA Re: Problema mudar de sprite sempre que seja adicionado um novo sprite a lista

Mensagem por Xremix30 Qua Jan 20, 2021 11:49 am

@Pokedlg escreveu:O Sprite mudou?
Não foi sempre o mesmo até ao final. 
Diga me como posso postar uma foto rapidamente aqui é que senão tenho de estar sempre a enviar para o drive e demoro muito tempo.

Xremix30
Membro
Membro

PONTOS : 989
REPUTAÇÃO : 3

Voltar ao Topo Ir em baixo

DÚVIDA Re: Problema mudar de sprite sempre que seja adicionado um novo sprite a lista

Mensagem por Pokedlg Qua Jan 20, 2021 11:57 am

O jeito mais rapido é pelo Imgur. Voce cria uma conta la e depois é só ir em imagens e arrastar sua imagem la, copiar o link direto e aqui no forum clicar em um simbolo de imagemcom um + e colar o link
Pokedlg
Pokedlg
Programador

Masculino PONTOS : 532
REPUTAÇÃO : 54
Áreas de atuação :
Iniciante(C#.NET, Animação, ShaderLab)
Intermediário(Unity, Shader Graph)
Respeito as regras : Problema  mudar de sprite sempre que seja adicionado um novo sprite a lista - Página 2 WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Problema mudar de sprite sempre que seja adicionado um novo sprite a lista

Mensagem por Pokedlg Qua Jan 20, 2021 12:15 pm

Tente assim entao:

Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;

public class PlayerMoviment : MonoBehaviour {
  public bool isMoving, isSprite;
  public bool readyToChangeSprite = true;
  public Vector3 origPos, targetPos, currentPos, finalTarget;
  private float timeToMove = 0.2f;
  // Tempo entre cada chamada de um movimento
  public float respawnTime = 3.0f;
  public Player player;
  public List<Vector3> movimentsList;
  public Sprite ImagePlayerRotateUp;
  public Sprite ImagePlayerRotateDown;
  public Sprite ImagePlayerRotateLeft;
  public Sprite ImagePlayerRotateRight;
  private SpriteRenderer spritePlayerRenderer;
  int counter, countMoviments;

  // Use this for initialization
  void Start () {
      finalTarget = transform.position;
      countMoviments = 0;
      player = GameObject.Find("Player").GetComponent<Player> ();
      //addMovimentsList();
 
  }

  void Update()
  {
      currentPos = transform.position;
      if(currentPos != finalTarget)
            {
                readyToChangeSprite = false;
            }
            else if (currentPos == finalTarget)
            {
                isMoving = false;
                readyToChangeSprite = true;

            foreach (GameObject rotateSprite in player.itemList)
            {
                if (rotateSprite.name.Contains ("rotateUp")) {changeSprite(ImagePlayerRotateUp);} 
               
                if (rotateSprite.name.Contains ("rotateDown")) {changeSprite(ImagePlayerRotateDown);}
               
                if (rotateSprite.name.Contains ("rotateLeft")) {changeSprite(ImagePlayerRotateLeft);}
               
                if (rotateSprite.name.Contains ("rotateRight")) {changeSprite(ImagePlayerRotateRight);}
        }
        }
  }
  // Método a chamar na opção do botão Play
  public void startMoviments()
  {
      //Primeira chamada do moveWave

      StartCoroutine(moveWave());
      //rotateSpritePlayer ();
  }

  // Recria os varios movimentos na lista
  IEnumerator moveWave()
  {
      http://rotateSpriteList.Reverse (0, rotateSpriteList.Count);
      // Enquanto a lista (lista) tiver movimentos ...");
 
      while (counter < movimentsList.Count)
      {
        yield return new WaitForSeconds(respawnTime);
        // Faz um movimento do jogador
     
     
        // Chama a sua função (ex: movePlayer()) para o movimento
        StartCoroutine (MovePlayer (movimentsList[countMoviments]));
 
            movimentsList.Remove (movimentsList [countMoviments]);

        counter++;
      }
  }

  public void rotateSpritePlayer(){
     
      foreach(GameObject rotateSprite in player.itemsList){
        if (rotateSprite.name.Contains ("rotateUp")) {
            changeSprite(ImagePlayerRotateUp);
            movimentsList.Add (Vector3.zero);
            } 
           
        if (rotateSprite.name.Contains ("rotateDown")) {
            changeSprite(ImagePlayerRotateDown);
            movimentsList.Add (Vector3.zero);
        }

        if (rotateSprite.name.Contains ("rotateLeft")) {
            changeSprite(ImagePlayerRotateLeft);
            movimentsList.Add (Vector3.zero);
        }
           
        if (rotateSprite.name.Contains ("rotateRight")) {
            changeSprite(ImagePlayerRotateRight);
            movimentsList.Add (Vector3.zero);
        } 
      }
  }

  public void movimentsPlayer(){
      foreach (GameObject moviment in player.itemsList) {

        if (moviment.name.Contains ("moveUp")) {
            isMoving = true;
            if(isMoving == true){readyToChangeSprite = false;}
            movimentsList.Add (Vector3.up);
            finalTarget += Vector3.up;

        } else if (moviment.name.Contains ("moveDown")) {
            isMoving = true;
            if(isMoving == true){readyToChangeSprite = false;}
            movimentsList.Add (Vector3.down);
            finalTarget += Vector3.down;

        } else if (moviment.name.Contains ("moveLeft")) {
            isMoving = true;
            if(isMoving == true){readyToChangeSprite = false;}
            movimentsList.Add (Vector3.left);
            finalTarget += Vector3.left;

        } else if (moviment.name.Contains ("moveRight")) {
            isMoving = true;
            if(isMoving == true){readyToChangeSprite = false;}
            movimentsList.Add (Vector3.right);
            finalTarget += Vector3.right;
        }

     
        //countMoviments++;
      }       
  }
 
  public void handleCatchItems(){
      foreach(GameObject handle in player.itemsList){
        if (handle.name.Contains ("handleCatch")) {
            movimentsList.Add (Vector3.zero);
            Debug.Log ("Hello");
        }
      }
  }

     
  public IEnumerator MovePlayer(Vector3 direction) // função que enumera as direções do teclado
  {
      isMoving = true;
      float elapsedTime = 0;
      origPos = transform.position;
      targetPos = origPos + direction;

      while (elapsedTime < timeToMove) {

        transform.position = Vector3.Lerp (origPos, targetPos, (elapsedTime / timeToMove));//modifica as posições interpolando linearmente entre dois vectores
        elapsedTime += Time.deltaTime;
        yield return null;
      }
      transform.position = targetPos;
      isMoving = false;
      if (FuelBar.Fuel > 0) {
       
        FuelBar.Fuel -= 1.0f;
        transform.position = targetPos;
      } else {
        SceneManager.LoadScene (1);

      }
  }

  public void changeSprite(Sprite sprite){
      spritePlayerRenderer = GetComponent<SpriteRenderer> ();
      if (readyToChangeSprite == true)
      {
      spritePlayerRenderer.sprite = sprite ;
      }
  }
Pokedlg
Pokedlg
Programador

Masculino PONTOS : 532
REPUTAÇÃO : 54
Áreas de atuação :
Iniciante(C#.NET, Animação, ShaderLab)
Intermediário(Unity, Shader Graph)
Respeito as regras : Problema  mudar de sprite sempre que seja adicionado um novo sprite a lista - Página 2 WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Problema mudar de sprite sempre que seja adicionado um novo sprite a lista

Mensagem por Xremix30 Qua Jan 20, 2021 12:27 pm

@Pokedlg escreveu:Tente assim entao:

Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;

public class PlayerMoviment : MonoBehaviour {
   public bool isMoving, isSprite;
   public bool readyToChangeSprite = true;
   public Vector3 origPos, targetPos, currentPos, finalTarget;
   private float timeToMove = 0.2f;
   // Tempo entre cada chamada de um movimento
   public float respawnTime = 3.0f;
   public Player player;
   public List<Vector3> movimentsList;
   public Sprite ImagePlayerRotateUp;
   public Sprite ImagePlayerRotateDown;
   public Sprite ImagePlayerRotateLeft;
   public Sprite ImagePlayerRotateRight;
   private SpriteRenderer spritePlayerRenderer;
   int counter, countMoviments;

   // Use this for initialization
   void Start () {
      finalTarget = transform.position;
      countMoviments = 0;
      player = GameObject.Find("Player").GetComponent<Player> ();
      //addMovimentsList();
  
   }

   void Update()
   {
       currentPos = transform.position;
       if(currentPos != finalTarget)
            {
                readyToChangeSprite = false;
            }
            else if (currentPos == finalTarget)
            {
                isMoving = false;
                readyToChangeSprite = true;

            foreach (GameObject rotateSprite in player.itemList)
            {
                if (rotateSprite.name.Contains ("rotateUp")) {changeSprite(ImagePlayerRotateUp);}  
                
                if (rotateSprite.name.Contains ("rotateDown")) {changeSprite(ImagePlayerRotateDown);}
                
                if (rotateSprite.name.Contains ("rotateLeft")) {changeSprite(ImagePlayerRotateLeft);}
                
                if (rotateSprite.name.Contains ("rotateRight")) {changeSprite(ImagePlayerRotateRight);}
        }
        }
   }
   // Método a chamar na opção do botão Play
   public void startMoviments()
   {
      //Primeira chamada do moveWave

      StartCoroutine(moveWave());
      //rotateSpritePlayer ();
   }

   // Recria os varios movimentos na lista
   IEnumerator moveWave()
   {
      http://rotateSpriteList.Reverse (0, rotateSpriteList.Count);
      // Enquanto a lista (lista) tiver movimentos ...");
  
      while (counter < movimentsList.Count)
      {
         yield return new WaitForSeconds(respawnTime);
         // Faz um movimento do jogador
      
      
         // Chama a sua função (ex: movePlayer()) para o movimento
         StartCoroutine (MovePlayer (movimentsList[countMoviments]));
  
            movimentsList.Remove (movimentsList [countMoviments]);

         counter++;
      }
   }

   public void rotateSpritePlayer(){
      
      foreach(GameObject rotateSprite in player.itemsList){
         if (rotateSprite.name.Contains ("rotateUp")) {
            changeSprite(ImagePlayerRotateUp);
            movimentsList.Add (Vector3.zero);
            }  
            
         if (rotateSprite.name.Contains ("rotateDown")) {
            changeSprite(ImagePlayerRotateDown);
            movimentsList.Add (Vector3.zero);
         }

         if (rotateSprite.name.Contains ("rotateLeft")) {
            changeSprite(ImagePlayerRotateLeft);
            movimentsList.Add (Vector3.zero);
         }
            
         if (rotateSprite.name.Contains ("rotateRight")) {
            changeSprite(ImagePlayerRotateRight);
            movimentsList.Add (Vector3.zero);
         }  
       }
   }

   public void movimentsPlayer(){
      foreach (GameObject moviment in player.itemsList) {

         if (moviment.name.Contains ("moveUp")) {
            isMoving = true;
            if(isMoving == true){readyToChangeSprite = false;}
            movimentsList.Add (Vector3.up);
            finalTarget += Vector3.up;

         } else if (moviment.name.Contains ("moveDown")) {
            isMoving = true;
            if(isMoving == true){readyToChangeSprite = false;}
            movimentsList.Add (Vector3.down);
            finalTarget += Vector3.down;

         } else if (moviment.name.Contains ("moveLeft")) {
            isMoving = true;
            if(isMoving == true){readyToChangeSprite = false;}
            movimentsList.Add (Vector3.left);
            finalTarget += Vector3.left;

         } else if (moviment.name.Contains ("moveRight")) {
            isMoving = true;
            if(isMoving == true){readyToChangeSprite = false;}
            movimentsList.Add (Vector3.right);
            finalTarget += Vector3.right;
         }

      
         //countMoviments++;
      }        
   }
  
   public void handleCatchItems(){
      foreach(GameObject handle in player.itemsList){
         if (handle.name.Contains ("handleCatch")) {
            movimentsList.Add (Vector3.zero);
            Debug.Log ("Hello");
         }
      }
   }

      
   public IEnumerator MovePlayer(Vector3 direction) // função que enumera as direções do teclado
   {
      isMoving = true;
      float elapsedTime = 0;
      origPos = transform.position;
      targetPos = origPos + direction;

      while (elapsedTime < timeToMove) {

         transform.position = Vector3.Lerp (origPos, targetPos, (elapsedTime / timeToMove));//modifica as posições interpolando linearmente entre dois vectores
         elapsedTime += Time.deltaTime;
         yield return null;
      }
      transform.position = targetPos;
      isMoving = false;
      if (FuelBar.Fuel > 0) {
        
         FuelBar.Fuel -= 1.0f;
         transform.position = targetPos;
      } else {
         SceneManager.LoadScene (1);

      }
   }

   public void changeSprite(Sprite sprite){
      spritePlayerRenderer = GetComponent<SpriteRenderer> ();
      if (readyToChangeSprite == true)
      {
      spritePlayerRenderer.sprite = sprite ;
      }
   }
Assim ele está a rodar o bonéco diretamente sempre que arrasto uma imagem ele roda o boneco. 
Vou testar o script anterior notei que no botão play para iniciar a sequência tinha lá o script playerMoviment e acho que não devia estar lá por isso não fazia nada. É já digo algo

Xremix30
Membro
Membro

PONTOS : 989
REPUTAÇÃO : 3

Voltar ao Topo Ir em baixo

DÚVIDA Re: Problema mudar de sprite sempre que seja adicionado um novo sprite a lista

Mensagem por Pokedlg Qua Jan 20, 2021 12:30 pm

Ok Curti isso
Pokedlg
Pokedlg
Programador

Masculino PONTOS : 532
REPUTAÇÃO : 54
Áreas de atuação :
Iniciante(C#.NET, Animação, ShaderLab)
Intermediário(Unity, Shader Graph)
Respeito as regras : Problema  mudar de sprite sempre que seja adicionado um novo sprite a lista - Página 2 WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Problema mudar de sprite sempre que seja adicionado um novo sprite a lista

Mensagem por Xremix30 Qua Jan 20, 2021 12:37 pm

@Pokedlg escreveu:Ok Curti isso
Ja testei o outro script antes deste nao funcionou continuou sempre com a mesma imagem.
Este aqui roda a imagem sempre que arrasto para o inventario.

Xremix30
Membro
Membro

PONTOS : 989
REPUTAÇÃO : 3

Voltar ao Topo Ir em baixo

DÚVIDA Re: Problema mudar de sprite sempre que seja adicionado um novo sprite a lista

Mensagem por Pokedlg Qua Jan 20, 2021 1:35 pm

Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;

public class PlayerMoviment : MonoBehaviour {
  public bool isMoving, isSprite;
  public bool readyToChangeSprite = true;
  public Vector3 origPos, targetPos, currentPos, finalTarget;
  private float timeToMove = 0.2f;
  // Tempo entre cada chamada de um movimento
  public float respawnTime = 3.0f;
  public Player player;
  public List<Vector3> movimentsList;
  public Sprite ImagePlayerRotateUp;
  public Sprite ImagePlayerRotateDown;
  public Sprite ImagePlayerRotateLeft;
  public Sprite ImagePlayerRotateRight;
  private SpriteRenderer spritePlayerRenderer;
  int counter, countMoviments;

  // Use this for initialization
  void Start () {
      countMoviments = 0;
      player = GameObject.Find("Player").GetComponent<Player> ();
      //addMovimentsList();
 
  }

  void Update()
  {
      currentPos = transform.position;
      if(currentPos != finalTarget)
            {
                readyToChangeSprite = false;
            }
            else if (currentPos == finalTarget)
            {
                isMoving = false;
                readyToChangeSprite = true;

            foreach (GameObject rotateSprite in player.itemList)
            {
                if (rotateSprite.name.Contains ("rotateUp")) {changeSprite(ImagePlayerRotateUp);} 
               
                if (rotateSprite.name.Contains ("rotateDown")) {changeSprite(ImagePlayerRotateDown);}
               
                if (rotateSprite.name.Contains ("rotateLeft")) {changeSprite(ImagePlayerRotateLeft);}
               
                if (rotateSprite.name.Contains ("rotateRight")) {changeSprite(ImagePlayerRotateRight);}
        }
        }
  }
  // Método a chamar na opção do botão Play
  public void startMoviments()
  {
      //Primeira chamada do moveWave

      StartCoroutine(moveWave());
      //rotateSpritePlayer ();
  }

  // Recria os varios movimentos na lista
  IEnumerator moveWave()
  {
      http://rotateSpriteList.Reverse (0, rotateSpriteList.Count);
      // Enquanto a lista (lista) tiver movimentos ...");
 
      while (counter < movimentsList.Count)
      {
        yield return new WaitForSeconds(respawnTime);
        // Faz um movimento do jogador
     
     
        // Chama a sua função (ex: movePlayer()) para o movimento
        StartCoroutine (MovePlayer (movimentsList[countMoviments]));
 
            movimentsList.Remove (movimentsList [countMoviments]);

        counter++;
      }
  }

  public void rotateSpritePlayer(){
     
      foreach(GameObject rotateSprite in player.itemsList){
        if (rotateSprite.name.Contains ("rotateUp")) {
            changeSprite(ImagePlayerRotateUp);
            movimentsList.Add (Vector3.zero);
            } 
           
        if (rotateSprite.name.Contains ("rotateDown")) {
            changeSprite(ImagePlayerRotateDown);
            movimentsList.Add (Vector3.zero);
        }

        if (rotateSprite.name.Contains ("rotateLeft")) {
            changeSprite(ImagePlayerRotateLeft);
            movimentsList.Add (Vector3.zero);
        }
           
        if (rotateSprite.name.Contains ("rotateRight")) {
            changeSprite(ImagePlayerRotateRight);
            movimentsList.Add (Vector3.zero);
        } 
      }
  }

  public void movimentsPlayer(){
      foreach (GameObject moviment in player.itemsList) {

        if (moviment.name.Contains ("moveUp")) {
            isMoving = true;
            if(isMoving == true){readyToChangeSprite = false;}
            movimentsList.Add (Vector3.up);
            finalTarget += Vector3.up;

        } else if (moviment.name.Contains ("moveDown")) {
            isMoving = true;
            if(isMoving == true){readyToChangeSprite = false;}
            movimentsList.Add (Vector3.down);
            finalTarget += Vector3.down;

        } else if (moviment.name.Contains ("moveLeft")) {
            isMoving = true;
            if(isMoving == true){readyToChangeSprite = false;}
            movimentsList.Add (Vector3.left);
            finalTarget += Vector3.left;

        } else if (moviment.name.Contains ("moveRight")) {
            isMoving = true;
            if(isMoving == true){readyToChangeSprite = false;}
            movimentsList.Add (Vector3.right);
            finalTarget += Vector3.right;
        }

     
        //countMoviments++;
      }       
  }
 
  public void handleCatchItems(){
      foreach(GameObject handle in player.itemsList){
        if (handle.name.Contains ("handleCatch")) {
            movimentsList.Add (Vector3.zero);
            Debug.Log ("Hello");
        }
      }
  }

     
  public IEnumerator MovePlayer(Vector3 direction) // função que enumera as direções do teclado
  {
      finalTarget = transform.position;
      isMoving = true;
      float elapsedTime = 0;
      origPos = transform.position;
      targetPos = origPos + direction;

      while (elapsedTime < timeToMove) {

        transform.position = Vector3.MoveTowards (origPos, targetPos, (elapsedTime / timeToMove));//modifica as posições interpolando linearmente entre dois vectores
        elapsedTime += Time.deltaTime;
        yield return null;
      }
      transform.position = targetPos;
      isMoving = false;
      if (FuelBar.Fuel > 0) {
       
        FuelBar.Fuel -= 1.0f;
        transform.position = targetPos;
      } else {
        SceneManager.LoadScene (1);

      }
  }

  public void changeSprite(Sprite sprite){
      spritePlayerRenderer = GetComponent<SpriteRenderer> ();
      if (readyToChangeSprite == true)
      {
      spritePlayerRenderer.sprite = sprite ;
      }
  }

Tenta assim, temos que achar o lugar correto do finalTarget.
Pokedlg
Pokedlg
Programador

Masculino PONTOS : 532
REPUTAÇÃO : 54
Áreas de atuação :
Iniciante(C#.NET, Animação, ShaderLab)
Intermediário(Unity, Shader Graph)
Respeito as regras : Problema  mudar de sprite sempre que seja adicionado um novo sprite a lista - Página 2 WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Problema mudar de sprite sempre que seja adicionado um novo sprite a lista

Mensagem por Xremix30 Qua Jan 20, 2021 1:51 pm

@Pokedlg escreveu:
Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;e2
using UnityEngine.SceneManagement;

public class PlayerMoviment : MonoBehaviour {
   public bool isMoving, isSprite;
   public bool readyToChangeSprite = true;
   public Vector3 origPos, targetPos, currentPos, finalTarget;
   private float timeToMove = 0.2f;
   // Tempo entre cada chamada de um movimento
   public float respawnTime = 3.0f;
   public Player player;
   public List<Vector3> movimentsList;
   public Sprite ImagePlayerRotateUp;
   public Sprite ImagePlayerRotateDown;
   public Sprite ImagePlayerRotateLeft;
   public Sprite ImagePlayerRotateRight;
   private SpriteRenderer spritePlayerRenderer;
   int counter, countMoviments;

   // Use this for initialization
   void Start () {
      countMoviments = 0;
      player = GameObject.Find("Player").GetComponent<Player> ();
      //addMovimentsList();
  
   }

   void Update()
   {
       currentPos = transform.position;
       if(currentPos != finalTarget)
            {
                readyToChangeSprite = false;
            }
            else if (currentPos == finalTarget)
            {
                isMoving = false;
                readyToChangeSprite = true;

            foreach (GameObject rotateSprite in player.itemList)
            {
                if (rotateSprite.name.Contains ("rotateUp")) {changeSprite(ImagePlayerRotateUp);}  
                
                if (rotateSprite.name.Contains ("rotateDown")) {changeSprite(ImagePlayerRotateDown);}
                
                if (rotateSprite.name.Contains ("rotateLeft")) {changeSprite(ImagePlayerRotateLeft);}
                
                if (rotateSprite.name.Contains ("rotateRight")) {changeSprite(ImagePlayerRotateRight);}
        }
        }
   }
   // Método a chamar na opção do botão Play
   public void startMoviments()
   {
      //Primeira chamada do moveWave

      StartCoroutine(moveWave());
      //rotateSpritePlayer ();
   }

   // Recria os varios movimentos na lista
   IEnumerator moveWave()
   {
      http://rotateSpriteList.Reverse (0, rotateSpriteList.Count);
      // Enquanto a lista (lista) tiver movimentos ...");
  
      while (counter < movimentsList.Count)
      {
         yield return new WaitForSeconds(respawnTime);
         // Faz um movimento do jogador
      
      
         // Chama a sua função (ex: movePlayer()) para o movimento
         StartCoroutine (MovePlayer (movimentsList[countMoviments]));
  
            movimentsList.Remove (movimentsList [countMoviments]);

         counter++;
      }
   }

   public void rotateSpritePlayer(){
      
      foreach(GameObject rotateSprite in player.itemsList){
         if (rotateSprite.name.Contains ("rotateUp")) {
            changeSprite(ImagePlayerRotateUp);
            movimentsList.Add (Vector3.zero);
            }  
            
         if (rotateSprite.name.Contains ("rotateDown")) {
            changeSprite(ImagePlayerRotateDown);
            movimentsList.Add (Vector3.zero);
         }

         if (rotateSprite.name.Contains ("rotateLeft")) {
            changeSprite(ImagePlayerRotateLeft);
            movimentsList.Add (Vector3.zero);
         }
            
         if (rotateSprite.name.Contains ("rotateRight")) {
            changeSprite(ImagePlayerRotateRight);
            movimentsList.Add (Vector3.zero);
         }  
       }
   }

   public void movimentsPlayer(){
      foreach (GameObject moviment in player.itemsList) {

         if (moviment.name.Contains ("moveUp")) {
            isMoving = true;
            if(isMoving == true){readyToChangeSprite = false;}
            movimentsList.Add (Vector3.up);
            finalTarget += Vector3.up;

         } else if (moviment.name.Contains ("moveDown")) {
            isMoving = true;
            if(isMoving == true){readyToChangeSprite = false;}
            movimentsList.Add (Vector3.down);
            finalTarget += Vector3.down;

         } else if (moviment.name.Contains ("moveLeft")) {
            isMoving = true;
            if(isMoving == true){readyToChangeSprite = false;}
            movimentsList.Add (Vector3.left);
            finalTarget += Vector3.left;

         } else if (moviment.name.Contains ("moveRight")) {
            isMoving = true;
            if(isMoving == true){readyToChangeSprite = false;}
            movimentsList.Add (Vector3.right);
            finalTarget += Vector3.right;
         }

      
         //countMoviments++;
      }        
   }
  
   public void handleCatchItems(){
      foreach(GameObject handle in player.itemsList){
         if (handle.name.Contains ("handleCatch")) {
            movimentsList.Add (Vector3.zero);
            Debug.Log ("Hello");
         }
      }
   }

      
   public IEnumerator MovePlayer(Vector3 direction) // função que enumera as direções do teclado
   {
      finalTarget = transform.position;
      isMoving = true;
      float elapsedTime = 0;
      origPos = transform.position;
      targetPos = origPos + direction;

      while (elapsedTime < timeToMove) {

         transform.position = Vector3.MoveTowards (origPos, targetPos, (elapsedTime / timeToMove));//modifica as posições interpolando linearmente entre dois vectores
         elapsedTime += Time.deltaTime;
         yield return null;
      }
      transform.position = targetPos;
      isMoving = false;
      if (FuelBar.Fuel > 0) {
        
         FuelBar.Fuel -= 1.0f;
         transform.position = targetPos;
      } else {
         SceneManager.LoadScene (1);

      }
   }

   public void changeSprite(Sprite sprite){
      spritePlayerRenderer = GetComponent<SpriteRenderer> ();
      if (readyToChangeSprite == true)
      {
      spritePlayerRenderer.sprite = sprite ;
      }
   }

Tenta assim, temos que achar o lugar correto do finalTarget.
Esta a ir buscar o último sprite ainda.

Xremix30
Membro
Membro

PONTOS : 989
REPUTAÇÃO : 3

Voltar ao Topo Ir em baixo

DÚVIDA Re: Problema mudar de sprite sempre que seja adicionado um novo sprite a lista

Mensagem por Pokedlg Qua Jan 20, 2021 2:01 pm

Qual foi o script que deu mais certo?
Pokedlg
Pokedlg
Programador

Masculino PONTOS : 532
REPUTAÇÃO : 54
Áreas de atuação :
Iniciante(C#.NET, Animação, ShaderLab)
Intermediário(Unity, Shader Graph)
Respeito as regras : Problema  mudar de sprite sempre que seja adicionado um novo sprite a lista - Página 2 WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Problema mudar de sprite sempre que seja adicionado um novo sprite a lista

Mensagem por Xremix30 Qua Jan 20, 2021 2:11 pm

@Pokedlg escreveu:Qual foi o script que deu mais certo?
O primeiro pareceu me melhor

Xremix30
Membro
Membro

PONTOS : 989
REPUTAÇÃO : 3

Voltar ao Topo Ir em baixo

DÚVIDA Re: Problema mudar de sprite sempre que seja adicionado um novo sprite a lista

Mensagem por Pokedlg Qua Jan 20, 2021 2:12 pm

Ok, vou ver o que posso modificar nele para que possamos fazer ele funcionar corretamente
Pokedlg
Pokedlg
Programador

Masculino PONTOS : 532
REPUTAÇÃO : 54
Áreas de atuação :
Iniciante(C#.NET, Animação, ShaderLab)
Intermediário(Unity, Shader Graph)
Respeito as regras : Problema  mudar de sprite sempre que seja adicionado um novo sprite a lista - Página 2 WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Problema mudar de sprite sempre que seja adicionado um novo sprite a lista

Mensagem por Xremix30 Qua Jan 20, 2021 5:24 pm

@Pokedlg escreveu:Ok, vou ver o que posso modificar nele para que possamos fazer ele funcionar corretamente
Olá Pokedlg
Antes de mais quero te agradecer pelo esforço que fizeste para me ajudar na rotação de sprites. Já consegui resolver o problema o código do update deixou de existir e atribui a cada Vector.zero umas coordenadas. Depois na função moveplaye atribui a flag que está dentro da função changesprite para true comparei se as coordenadas forem iguais a que passei na função rotateSpritePlayer ele chama a função changesprite e roda naquela posição  depois faço as variáveis X, Y, z para zero no final de todas as condições passo a flag que está na função changesprite para false. É funcionou perfeitamente. Muito Obrigado Mesmo. Pokedlg

Xremix30
Membro
Membro

PONTOS : 989
REPUTAÇÃO : 3

Voltar ao Topo Ir em baixo

DÚVIDA Re: Problema mudar de sprite sempre que seja adicionado um novo sprite a lista

Mensagem por Pokedlg Qua Jan 20, 2021 5:29 pm

Denada Smile Curti isso. Sucesso com seu Jogo!
Pokedlg
Pokedlg
Programador

Masculino PONTOS : 532
REPUTAÇÃO : 54
Áreas de atuação :
Iniciante(C#.NET, Animação, ShaderLab)
Intermediário(Unity, Shader Graph)
Respeito as regras : Problema  mudar de sprite sempre que seja adicionado um novo sprite a lista - Página 2 WvDYdlf

Voltar ao Topo Ir em baixo

Página 2 de 2 Anterior  1, 2

Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum