GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Conectar-se

Esqueci minha senha

Últimos assuntos
» [Ideia] Concurso para relembrar os bons tempos
por vinians Hoje à(s) 09:40

» GMBR 2020 (jogo comemorativo)
por Diemorth Hoje à(s) 09:24

» Rodar o jogo em iOS
por matheushdj Ontem à(s) 20:04

» [XCREATOR] [JAM] [UPD] Farm Defense
por vinians Qui 09 Jul 2020, 23:31

» Dúvida sobre GameMaker
por Super Games Qui 09 Jul 2020, 19:32

» Apresentação de Rojas231
por Super Games Qui 09 Jul 2020, 19:17

» Vender extensões no marketplace da yoyo games?
por Willy Qui 09 Jul 2020, 09:55

» [DOWNLOAD] Manual Game Maker 8 traduzido
por matheushdj Qua 08 Jul 2020, 21:41

» Máquina de estado/State Machine no Unity
por theguitarmester Ter 07 Jul 2020, 22:17

» Eu sou o MoisesBR
por GabrielXavier Ter 07 Jul 2020, 22:04

» Melhor pontuação
por matheushdj Seg 06 Jul 2020, 22:23

» Problemas com animação e ataque
por moisesBR Seg 06 Jul 2020, 22:05

» Ideia para futuros concursos
por moisesBR Seg 06 Jul 2020, 20:51

» Para quem quer mexer com a Godot
por Super Games Seg 06 Jul 2020, 09:45

» MOON - [Indie Game Solo]
por vinians Seg 06 Jul 2020, 08:40


Unity - ajuda para mover objetos

Ir em baixo

Unity - ajuda para mover objetos Empty Unity - ajuda para mover objetos

Mensagem por polosam em Qua 03 Jun 2020, 19:20

Galera, inaugurando a seção sobre Unity: na posição de um completo noob em C#, eu gostaria de uma orientação para mover essas duas plataformas destacadas na imagem. Preciso que elas fiquem escondidas atrás da parede, e aí, quando eu der um comando, elas devem aumentar um pouquinho o valor do seu eixo X até serem reveladas, ficando para fora e passando a funcionar como plataformas pisáveis.

Unity - ajuda para mover objetos Img01

Consegui entender o princípio de como fazer um objeto girar no que seria equivalente ao evento step (código abaixo), mas no momento não faço ideia de como determinar uma mudança de posição. Eu queria que fosse um movimento com duração de dois segundos.
Meu único código até agora:

Código:
using UnityEngine;
using System.Collections;

public class NewBehaviourScript : MonoBehaviour {
 float rotation =80f;

 void Update () {
 transform.Rotate(Vector3.up * rotation * Time.deltaTime);
 }
}


Eu não sei por onde começar esse código de mudança de posição. não

_________________

Um texto coerente e bem formatado dá mais feedback. Se achar um erro ortográfico depois de postar, não tenha preguiça de fazer uma edição. É bem provável que a mensagem que leva esta assinatura tenha sido editada.

Mude para o Dropbox!
polosam
polosam

Data de inscrição : 20/12/2010
Reputação : 64
Número de Mensagens : 500
Prêmios : Unity - ajuda para mover objetos Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Unity - ajuda para mover objetos Empty Re: Unity - ajuda para mover objetos

Mensagem por theguitarmester em Qua 03 Jun 2020, 20:14

Eae, estou aqui para te ajudar com minha forte experiência em C#/.Net e Unity de pouco mais de um mês, para inaugurar as respostas na sessão de Unity hehe

Pra iniciar eu vou ajudar com o que tu precisa e pode usar, e daí tu monta como quiser:

Pegar a tecla:
Existe um sistema novo de input, o qual eu já vi alguns vídeos sobres mas ainda não to usando, estou usando o antigo por ser mais fácil pra iniciar rapidamente, então te mostrarei nele, mas saiba que existe um novo melhor:
Pra ti pegar algum input, em geral tu vai/pode usar de duas maneiras:
a primeira é com botões pré definidos da Unity: http://prntscr.com/stbkv9or, por exemplo:
Código:
if (Input.GetButtonDown("Fire1")) { /* Se apertar o Fire1 (que é o mouse btn esquerdo, ctrl esquerdo, X/A no controle), faz algo*/ }

A segunda é direto pela tecla:
Código:
if (Input.GetKeyDown(KeyCode.LeftControl)) {
/* Se apertar o ctrl esquerdo, faz algo */
}

Documentação do Input: https://docs.unity3d.com/ScriptReference/Input.html


Transform objeto (posição, rotação, escala):
Como tu já fez ali, utiliza o transform.rotation pra rodar, .position pra mudar a posição, .localScale pra escala (além de outros).
Pra lidar com rotação, tu vai precisar bastante usar a classe Quaternion.
exemplo:
Código:
transform.position = transform.position + transform.forward * 2 * Time.deltaTime;
Isso fará com que a cada 2 segundos a posição desse objetoi tenha ido pra frente 2 unidade de medidas
theguitarmester
theguitarmester

Games Ranking : Nota B

Notas recebidas : B
Data de inscrição : 28/02/2012
Reputação : 89
Número de Mensagens : 1942
Prêmios : Unity - ajuda para mover objetos Empty

Medalhas x 0 Tutoriais x 2 Moedas x 0

Ouro x 2 Prata x 2 Bronze x 1

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Plataformas :
  • Unity


http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Voltar ao Topo Ir em baixo

Unity - ajuda para mover objetos Empty Re: Unity - ajuda para mover objetos

Mensagem por polosam em Qua 03 Jun 2020, 20:53

Obrigado pelo toque, guitar!
Eu coloquei este código no update:
Código:
void Update () {
 if (Input.GetKey("home"))
 {
 move=1;
 transform.position = transform.position + transform.forward * 2 * Time.deltaTime;
 }



 }
Estou patinando aqui ainda:
Quando apertava o botão elas se moviam para o lado apenas um tiquinho; tirando a palavra "down", do GetKey, mantenho pressionado o botão "home" e elas fazem o movimento contínuo que eu queria, só que não vai na direção desejada: quando troco forward por left, no código, o Unity dá erro de compilação.

Eu tentei trocar o ato de segurar o botão por uma variável, mas agora diz que esse valor não pode ser convertido para bool (tento com variáveis int e float, e ao tentar declarar uma bool para lá, deu mais uma porção de erros no debug).

Por favor: como faço para trocar esse ato de segurar o botão por uma variável que possa simplesmente mudar para true/1?

A versão do Unity é a 4.5.4f1. Seria bom baixar a mais recente, mesmo eu sendo um iniciante absoluto?

_________________

Um texto coerente e bem formatado dá mais feedback. Se achar um erro ortográfico depois de postar, não tenha preguiça de fazer uma edição. É bem provável que a mensagem que leva esta assinatura tenha sido editada.

Mude para o Dropbox!
polosam
polosam

Data de inscrição : 20/12/2010
Reputação : 64
Número de Mensagens : 500
Prêmios : Unity - ajuda para mover objetos Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Unity - ajuda para mover objetos Empty Re: Unity - ajuda para mover objetos

Mensagem por theguitarmester em Qui 04 Jun 2020, 12:08

Eu baixei a mais atual, não vejo motivo pra baixar uma versão antigo, a menos que não funcione uma atual na sua máquina.

é como no game maker:
Código:
Input.GetKey() = keyboard_check()
Input.GetKeyDown() = keyboard_check_pressed()
Input.GetKeyUp= keyboard_check_released()
(Meu GM tá enferrujado, pode ser que a função não seja bem assim, mas é essa a ideia)

input.get.. retorna um bool/boleano, logo tu pode fazer:
Código:
mover = Input.GetKey("home");


transform.position é uma variável do tipo Vector3, ou seja, um vetor de 3 valores (que são usados geralmente pro x, y e z).
tranform.forward, .right, .up, a mesma coisa, porém são valores muito legais que servem pra facilitar e muito a tua vida (do que se tivesse que fazer manualmente), basicamente, como o nome sugere, eles apontam a direção referente ao atual transform. Não existe transform.down ou transform.left, esses tu obtem com a negação do transform.up e tranform.right:
Código:
Vector3 transformLeft = -transform.right;
Vector3 transformDown = -transform.up;


outra coisa talvez que não ficou clara:
eu to falando mover, e tu também, mas na verdade isso não está movendo, e sim tu tá colocando o objeto em uma nova posição, por isso o Input.GetKeyDown() só deu uma mexidinha, porque com ele tu só executou uma vez a ação de colocar o objeto na posição dele, e mais um pouco pra frente.
theguitarmester
theguitarmester

Games Ranking : Nota B

Notas recebidas : B
Data de inscrição : 28/02/2012
Reputação : 89
Número de Mensagens : 1942
Prêmios : Unity - ajuda para mover objetos Empty

Medalhas x 0 Tutoriais x 2 Moedas x 0

Ouro x 2 Prata x 2 Bronze x 1

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Plataformas :
  • Unity


http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Voltar ao Topo Ir em baixo

Unity - ajuda para mover objetos Empty Re: Unity - ajuda para mover objetos

Mensagem por polosam em Qui 04 Jun 2020, 15:17

@theguitarmester escreveu:

input.get.. retorna um bool/boleano, logo tu pode fazer:
Código:
mover = Input.GetKey("home");


Cara, me ajudou demais. Eu dei uma busca sobre esse negócio de bool e consegui fazer funcionar com este código:
Unity - ajuda para mover objetos Entendeno
Não para depois do tempo que eu quero, não é automático, mas sinto que já é uma grande evolução.

yes  Vou baixar uma versão mais recente do Unity ainda hoje.

_________________

Um texto coerente e bem formatado dá mais feedback. Se achar um erro ortográfico depois de postar, não tenha preguiça de fazer uma edição. É bem provável que a mensagem que leva esta assinatura tenha sido editada.

Mude para o Dropbox!
polosam
polosam

Data de inscrição : 20/12/2010
Reputação : 64
Número de Mensagens : 500
Prêmios : Unity - ajuda para mover objetos Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Unity - ajuda para mover objetos Empty Re: Unity - ajuda para mover objetos

Mensagem por theguitarmester em Qui 04 Jun 2020, 20:34

Que bom cara, hehe

Sobre parar no tempo, procure sobre Time.time, tu pode salvar numa variável o momento que tu pressionou, e depois fazer algo como:
Código:
if (Time.time < tempoSalvo + 5) {}

Isso aí vai ser executado por 5 segundos. (Time.time está em segundo).
theguitarmester
theguitarmester

Games Ranking : Nota B

Notas recebidas : B
Data de inscrição : 28/02/2012
Reputação : 89
Número de Mensagens : 1942
Prêmios : Unity - ajuda para mover objetos Empty

Medalhas x 0 Tutoriais x 2 Moedas x 0

Ouro x 2 Prata x 2 Bronze x 1

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Plataformas :
  • Unity


http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Voltar ao Topo Ir em baixo

Unity - ajuda para mover objetos Empty Re: Unity - ajuda para mover objetos

Mensagem por Pit Bull em Qui 18 Jun 2020, 15:59

Minha dica, não utilize Update() para movimentação de personagens e atualização de UI, use FixedUpdate().
Pit Bull
Pit Bull

Data de inscrição : 31/08/2010
Reputação : 16
Número de Mensagens : 639
Prêmios : Unity - ajuda para mover objetos Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Unity
  • C#
  • Outros


https://discord.gg/ZPM2d6q

Voltar ao Topo Ir em baixo

Unity - ajuda para mover objetos Empty Re: Unity - ajuda para mover objetos

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

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