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:
Alguem me ajuda com script simples?
Como evitar que personagem se levante onde não há espaço suficiente?
Som falhando no Android
Resolução Nativa Fixa
Como anular uma das teclas no Unity
Botão UI que troca a cor dos objetos
Ativar um objeto quando desativar outro e vice-versa (Unity)
Objeto não continua associado
Necessário Level Designer para criar uma cidade
Como criar um Sistema de Trein na Unity.
[TUTORIAL] Agachar, correr e sistema de estamina ( C# )
FPSController travado no lugar após animações usando seu transform
OnTriggerEnter
Unity - Áudios deixam a Scene pesada pra abrir
[RESOLVIDO] URP QUE NÃO RENDERIZA. UNITY 2020.3.18 ARQUIVO DAE DO SKetchfab
Criar input mobile depois do jogo "quase pronto" vale a pena ?
Mudar a densidade da grama pelo script de outra cena
Como Pegar DesseObjeto.GetComponent<ScriptName.Boolean>
Como pausar a renderização do Blender
Como trocar todas as SpritesSheets do animator no Unity2D?
Como Fazer Espelho perfeito fácil na Unity, Apenas 4 linhas de código
[TUTORIAL] AI Enemy 2.0 + animações ( Jogos de terror )
app para aquaristas
Serializar Dictionary no Scriptable Object
Camera gira errada no eixo z ao entrar no carro!!
Referencias entre objetos pai e filho
Quem aqui tem jogos publicados no Steam?
Erro ao criar "Truck Trailer" Realisti Car Controller RCC
Unity - O jogo não roda no Celular
Reviver o Car Town EX
[TUTORIAL] Criando Menu Modular na Unity
QUAL MELHOR LOCAL OU CURSO PARA APRENDER PROGRAMAÇÃO DO 0?
Meu script de movimentação não funciona, alguém pode me ajudar?
Como faço para fazer 'Objeto' piscar Aleatoriamente
Duvida boba sobre UI
FORMAÇAO DE EQUIPE PARA GAME PARKOUR
Colisão Seletiva
Unity 2021.3.4f1 - Adicionar script em um gameObject por código
[Curso Grátis para iniciantes] Um Ótimo Lugar para aprender Unity
Erro de ArgumentNullException no WebGL da Unity
como desativar um text depois de 10 segundos?
Como eu faria o inimigo reagir a um tiro ?
player empurrando o outro
Vida do player e variaveis static
Contagem de GameObjects presentes em um Scene
Stamina/Sede - Movimentação
Pegar objeto e rotacionar
Efeito Smoke na Asa do Ace Combat
Passar informações de um script pro outro
PROCURA-SE PARCEIRO PARA LEVEL DESIGN - SIMULADOR DE COMBATE
como verificar se um objeto com um nome especifico nao esta na cena
Jogo fecha do nada
Meus jogos publicados no google play
preciso de um programador que entenda de Photon pago via Pix pela ajuda!!
Blender Faces Transparentes
Unity - Aba Game Preta no Display1. No Display2 fica normal
Duvida sobre bool na transição de animações
Tem Como Fazer um Shader com o Shader Graph que Deixa a Escala Infinita?
Câmera Com Render Texture Para HUD
[RESOLVIDO] Destroy object quando toca no chao
Inimigo Com Movimento de Ondas(ZigZag)
Movimentação para todas as direções em um jogo multiplayer online
DKG - Dynamic Kit Generator
Emissão de luz em objeto não estático.
Gerenciar carregamento de texturas
Texturas rosas ao extrair materiais do objeto, com modelo .dae
Modelador (Personagem + Roupa) com Direito a Remuneração
Pegar material especifico do objeto
ERRO AO UPAR NA GOOGLE PLAY STORE
[RESOLVIDO] Navegation Unity 3D
JOGO "CHALLENGE" FINALIZADO E DISPONÍVEL PARA BAIXAR.
[RESOLVIDO] Desativar e ativar objeto com o mesmo botão
Objetos da Unity com cores erradas.
[RESOLVIDO] Botão não está desativando pelo GetComponent
Adição de um Bone à outra Armature no Blender não funciona na Unity
Posição local do pixel de um quad
Shader Graph UI
Rotacionar objeto em apenas um eixo
[ASSET] Sistema completo de Auto Save para Editor
Criar uma aplicação tipo controle remoto bluetooth.
Easy Road 3d - Preciso de Ajuda
Alguem ai Entende de Multiplayer?
alguem pode me ajudar com essa adição de item numa lista?
APK para Android 12 não executa aplicação, Help Please
[TUTORIAL] Sprites Animados
REMOVER RESOLUÇOES
Unity > Editor > Any Android Device bugado!
Erro de Referência
terminei meu jogo, mas algo deu errado.
Erro ao iniciar jogo após a build
Posição Invertida No Multiplayer
Unity 5 - Invalid serialized file header
Character Controller Slide
Sombras desaparecem qnd o bake das luzes termina
Blender - Programa ou site que faça o Rig da face do Personagem
Meu PC deu pro mundo! e agora?
[RESOLVIDO] Player atravessa Parede mesmo com os Colliders
Movimentação 3D
[RESOLVIDO] - Blender - Erro deixa objeto Transparente
Hoje à(s) 11:47 am
Hoje à(s) 10:13 am
Ontem à(s) 10:48 am
Ter Ago 16, 2022 7:07 pm
Ter Ago 16, 2022 2:45 am
Seg Ago 15, 2022 9:06 pm
Seg Ago 15, 2022 5:38 pm
Seg Ago 15, 2022 4:41 pm
Dom Ago 14, 2022 10:26 pm
Dom Ago 14, 2022 3:54 pm
Sab Ago 13, 2022 11:16 am
Qua Ago 10, 2022 3:13 pm
Ter Ago 09, 2022 8:26 pm
Seg Ago 08, 2022 4:00 pm
Sex Ago 05, 2022 8:48 pm
Sex Ago 05, 2022 12:39 pm
Qui Ago 04, 2022 4:18 pm
Qua Ago 03, 2022 11:36 am
Seg Ago 01, 2022 5:04 pm
Seg Ago 01, 2022 1:29 pm
Dom Jul 31, 2022 12:06 am
Sab Jul 30, 2022 11:39 pm
Sab Jul 30, 2022 11:24 am
Sab Jul 30, 2022 10:41 am
Sex Jul 29, 2022 8:46 pm
Qui Jul 28, 2022 6:02 pm
Qui Jul 28, 2022 12:44 pm
Qua Jul 27, 2022 11:39 pm
Qua Jul 27, 2022 10:04 pm
Qua Jul 27, 2022 4:41 pm
Qua Jul 27, 2022 11:01 am
Qua Jul 27, 2022 9:44 am
Ter Jul 26, 2022 4:38 pm
Ter Jul 26, 2022 4:23 pm
Seg Jul 25, 2022 9:40 pm
Seg Jul 25, 2022 6:45 pm
Dom Jul 24, 2022 4:27 pm
Sex Jul 22, 2022 8:55 pm
Sex Jul 22, 2022 4:08 pm
Sex Jul 22, 2022 12:11 pm
Sex Jul 22, 2022 11:43 am
Qui Jul 21, 2022 8:36 pm
Seg Jul 18, 2022 10:04 pm
Seg Jul 18, 2022 2:24 pm
Dom Jul 17, 2022 6:48 pm
Dom Jul 17, 2022 11:48 am
Sab Jul 16, 2022 7:02 pm
Sab Jul 16, 2022 11:21 am
Qua Jul 13, 2022 5:55 pm
Qua Jul 13, 2022 9:59 am
Ter Jul 12, 2022 11:43 pm
Sab Jul 09, 2022 4:09 pm
Sex Jul 08, 2022 10:41 pm
Sex Jul 08, 2022 10:26 pm
Sex Jul 08, 2022 7:06 am
Qui Jul 07, 2022 8:23 pm
Qui Jul 07, 2022 8:16 am
Qua Jul 06, 2022 8:48 pm
Qua Jul 06, 2022 6:03 pm
Seg Jul 04, 2022 9:30 am
Qua Jun 29, 2022 12:52 am
Ter Jun 28, 2022 7:44 pm
Ter Jun 28, 2022 4:16 pm
Dom Jun 26, 2022 6:03 pm
Sab Jun 25, 2022 3:03 pm
Qua Jun 22, 2022 6:21 pm
Qua Jun 22, 2022 1:28 am
Ter Jun 21, 2022 11:42 pm
Ter Jun 21, 2022 2:27 pm
Seg Jun 20, 2022 4:08 pm
Dom Jun 12, 2022 12:52 pm
Ter Jun 07, 2022 7:47 pm
Ter Jun 07, 2022 5:20 pm
Seg Jun 06, 2022 10:16 pm
Dom Jun 05, 2022 4:44 pm
Dom Jun 05, 2022 10:45 am
Dom Jun 05, 2022 9:59 am
Sab Jun 04, 2022 11:24 pm
Sab Jun 04, 2022 4:18 pm
Sab Jun 04, 2022 3:21 pm
Sab Jun 04, 2022 2:24 pm
Sab Jun 04, 2022 2:15 pm
Sex Jun 03, 2022 4:28 pm
Sex Jun 03, 2022 4:11 pm
Qui Jun 02, 2022 8:48 pm
Dom Maio 29, 2022 6:00 pm
Sex Maio 27, 2022 11:32 pm
Sex Maio 27, 2022 3:50 pm
Sex Maio 27, 2022 8:38 am
Qui Maio 26, 2022 6:47 pm
Ter Maio 24, 2022 4:28 pm
Ter Maio 24, 2022 11:01 am
Dom Maio 22, 2022 1:43 pm
Dom Maio 22, 2022 1:38 pm
Dom Maio 22, 2022 11:21 am
Sab Maio 21, 2022 8:01 am
Sex Maio 20, 2022 10:30 pm
Sex Maio 20, 2022 3:36 pm
Sex Maio 20, 2022 3:16 pm
Tomas Turbando
Rangel Oblivion
mama2401
juraulh
SteveRogers
AGAMENOM
eleganceu
SteveRogers
EricknhYT
NoctisDregon
Édipo
Rangel Oblivion
dutrabr100
Magnatah
marciosilva
SteveRogers
jeancvo3
dutrabr100
Alex Jun
tecnoato
Yuri Heinz
Yuri Heinz
Édipo
gabrimo
SteveRogers
Pokedlg
thales.ulisses
EricknhYT
WLCS22
fragas42
MayLeone
Magnatah
EmmaFriboi
lovuxd
Tomas Turbando
SeTk
Rangel Oblivion
dutrabr100
dutrabr100
Atho
dutrabr100
MRX
dutrabr100
Pokedlg
Nimue
dutrabr100
SpartanoLeonidas300
Eris
thiagograssi
Eris
SteveRogers
claudiano2020
claudiano2020
claudiano2020
Eris
WLCS22
Rangel Oblivion
MarcosSchultz
Eris
stratengine
MarcosSchultz
kessisdiones
gabrimo
cyborggp
MarcosSchultz
MarcosSchultz
EricknhYT
SteveRogers
SteveRogers
Mozinhas2
lauderson
BlesseD
Emerson Beaver
kessisdiones
WLCS22
gabrimo
Eris
SteveRogers
AnderGames
Diomaker
EricknhYT
claudiano2020
Pokedlg
SteveRogers
lauderson
lauderson
WLCS22
Arcebispo
JoSanInk
Rangel Oblivion
claudiano2020
erickfabio366
Rangel Oblivion
Crash Psycho
WLCS22
Callyde Jr
Pedro1saac
dutrabr100
dutrabr100

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

2 participantes

Página 2 de 2 Anterior  1, 2

Ir para 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 : 1529
REPUTAÇÃO : 3

Ir para o topo Ir para 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
ProgramadorMaster

Masculino PONTOS : 1506
REPUTAÇÃO : 195
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras : Problema  mudar de sprite sempre que seja adicionado um novo sprite a lista - Página 2 Aad8pUi

Ir para o topo Ir para 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
ProgramadorMaster

Masculino PONTOS : 1506
REPUTAÇÃO : 195
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras : Problema  mudar de sprite sempre que seja adicionado um novo sprite a lista - Página 2 Aad8pUi

Ir para o topo Ir para 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 : 1529
REPUTAÇÃO : 3

Ir para o topo Ir para 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
ProgramadorMaster

Masculino PONTOS : 1506
REPUTAÇÃO : 195
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras : Problema  mudar de sprite sempre que seja adicionado um novo sprite a lista - Página 2 Aad8pUi

Ir para o topo Ir para 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 : 1529
REPUTAÇÃO : 3

Ir para o topo Ir para 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
ProgramadorMaster

Masculino PONTOS : 1506
REPUTAÇÃO : 195
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras : Problema  mudar de sprite sempre que seja adicionado um novo sprite a lista - Página 2 Aad8pUi

Ir para o topo Ir para 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 : 1529
REPUTAÇÃO : 3

Ir para o topo Ir para 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
ProgramadorMaster

Masculino PONTOS : 1506
REPUTAÇÃO : 195
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras : Problema  mudar de sprite sempre que seja adicionado um novo sprite a lista - Página 2 Aad8pUi

Ir para o topo Ir para 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 : 1529
REPUTAÇÃO : 3

Ir para o topo Ir para 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
ProgramadorMaster

Masculino PONTOS : 1506
REPUTAÇÃO : 195
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras : Problema  mudar de sprite sempre que seja adicionado um novo sprite a lista - Página 2 Aad8pUi

Ir para o topo Ir para 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 : 1529
REPUTAÇÃO : 3

Ir para o topo Ir para 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
ProgramadorMaster

Masculino PONTOS : 1506
REPUTAÇÃO : 195
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras : Problema  mudar de sprite sempre que seja adicionado um novo sprite a lista - Página 2 Aad8pUi

Ir para o topo Ir para baixo

Página 2 de 2 Anterior  1, 2

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos