problema com o transform.position
3 participantes
Página 1 de 1
problema com o transform.position
o código abaixo funciona da seguinte maneira
quando o objeto chega na posiçao" inicio"
ela volta para a posiçao "fim"
o problema é que quando ele chaga na posiçao "fim"
o objeto nao volta para a posiçao "inicio"
ele fica parado na posiçao "fim"
é como se um estivesse anulando a funçao do outro
ja tentei trocar o sinal e vice-versa
sera que alguem poderia mi ajudar?????????????????????/
quando o objeto chega na posiçao" inicio"
ela volta para a posiçao "fim"
- Código:
var inicio = 2;
var fim = -5;
var velocidade=5;
function Update () {
transform.Translate(0,velocidade*Time.deltaTime,0);
if(transform.position.y<=fim){
transform.position.y=inicio;
}
if(transform.position.y>=inicio){
transform.position.y=fim;
}}
o problema é que quando ele chaga na posiçao "fim"
o objeto nao volta para a posiçao "inicio"
ele fica parado na posiçao "fim"
- Código:
if(transform.position.y<=fim){
transform.position.y=inicio;
é como se um estivesse anulando a funçao do outro
ja tentei trocar o sinal e vice-versa
sera que alguem poderia mi ajudar?????????????????????/
danyllo106- Avançado
- PONTOS : 3521
REPUTAÇÃO : 7
Idade : 27
Respeito as regras :
Re: problema com o transform.position
Daria pra você usar 2 variáveis booleanas, por exemplo:
- Código:
var inicio : int; //Lembrando que sou iniciante.
var fim : int;
var velocidade : int;
var chegouI:boolean;
var chegouF:boolean;
function Update () {
chegouI=false;
chegouF=false;
inicio=2;
fim=-5;
velocidade=5*Time.deltaTime;
if(chegouI==true)
{
transform.position.y=inicio;
}
if(chegouF==true)
{
transform.position.y=fim;
}
transform.Translate(0,velocidade,0);
if(transform.position.y<=fim)
{
chegouI=true;
}
if(transform.position.y>=inicio)
{
chegouF=true;
}
}
Gustavo Angelo- Iniciante
- PONTOS : 3229
REPUTAÇÃO : 0
Idade : 26
Áreas de atuação : Cursando Análise e desenvolvimento de sistemas
Conhecimentos básicos em JavaScript, COBOL, Pawno e P
Respeito as regras :
Re: problema com o transform.position
DEU CERTO NAO CARA
danyllo106- Avançado
- PONTOS : 3521
REPUTAÇÃO : 7
Idade : 27
Respeito as regras :
Resposta
Posta print do erro que deu, com os 2 códigos.
Gustavo Angelo- Iniciante
- PONTOS : 3229
REPUTAÇÃO : 0
Idade : 26
Áreas de atuação : Cursando Análise e desenvolvimento de sistemas
Conhecimentos básicos em JavaScript, COBOL, Pawno e P
Respeito as regras :
Re: problema com o transform.position
Você está cometendo um erro de lógica... dê uma olhada:
Se chegou ao fim, você seta o início, más no mesmo frame você pede que se está no início, setará o fim...
conseguentemente ele ficará sempre no fim.
faça um else if em vez de só if
no C# ficaria assim:
- Código:
if(transform.position.y<=fim){
transform.position.y=inicio;
}
if(transform.position.y>=inicio){
transform.position.y=fim;
}
Se chegou ao fim, você seta o início, más no mesmo frame você pede que se está no início, setará o fim...
conseguentemente ele ficará sempre no fim.
faça um else if em vez de só if
no C# ficaria assim:
- Código:
using UnityEngine;
using System.Collections;
public class Posicao : MonoBehaviour {
public int inicio = 2;
public int fim = -5;
public float velocidade=5;
void Update () {
transform.Translate(0,velocidade*Time.deltaTime,0);
if(transform.position.y<=fim){
transform.position = new Vector3 (transform.position.x, inicio, transform.position.z);
}
else if(transform.position.y>=inicio){
transform.position = new Vector3 (transform.position.x, fim, transform.position.z);
}
}
}
Re: problema com o transform.position
MarcosSchultz escreveu:Você está cometendo um erro de lógica... dê uma olhada:
- Código:
if(transform.position.y<=fim){
transform.position.y=inicio;
}
if(transform.position.y>=inicio){
transform.position.y=fim;
}
Se chegou ao fim, você seta o início, más no mesmo frame você pede que se está no início, setará o fim...
conseguentemente ele ficará sempre no fim.
faça um else if em vez de só if
no C# ficaria assim:
- Código:
using UnityEngine;
using System.Collections;
public class Posicao : MonoBehaviour {
public int inicio = 2;
public int fim = -5;
public float velocidade=5;
void Update () {
transform.Translate(0,velocidade*Time.deltaTime,0);
if(transform.position.y<=fim){
transform.position = new Vector3 (transform.position.x, inicio, transform.position.z);
}
else if(transform.position.y>=inicio){
transform.position = new Vector3 (transform.position.x, fim, transform.position.z);
}
}
}
vlw pela explicaçao cara
so que eu usei seu javascript e continuou a mesma coisa
ele parava na posiçao fim
entao eu usei seu c# e deu certo
vlw pela ajuda
danyllo106- Avançado
- PONTOS : 3521
REPUTAÇÃO : 7
Idade : 27
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Como faço para um transform.position receber um novo transform dentro de um if
» [AJUDA] transform.position
» Unity-Transform.position e Rigidbory VS CharacterController. Qual o melhor?
» Problemas com o transform.position com GameObjects 3D
» Duvida sobre transform.position!
» [AJUDA] transform.position
» Unity-Transform.position e Rigidbory VS CharacterController. Qual o melhor?
» Problemas com o transform.position com GameObjects 3D
» Duvida sobre transform.position!
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos