como instanciar objetos
3 participantes
Página 1 de 1
como instanciar objetos
pessoal to criando um jogo 2D. como faço para instanciar um objeto, alguém tem como passar uma ideia de como eu posso fazer a programação em C# ?
newstudio- Iniciante
- PONTOS : 2997
REPUTAÇÃO : 0
Respeito as regras :
Re: como instanciar objetos
- Código:
public GameObject objetoASerInstanciado; // Prefab para ser instanciado
void Start(){
Instantiate (objetoASerInstanciado, transform.position, Quaternion.identity); // Comando para instanciar
}
Da uma olhada aqui: https://docs.unity3d.com/ScriptReference/Object.Instantiate.html
Re: como instanciar objetos
Guilherme_cj852 escreveu:
- Código:
public GameObject objetoASerInstanciado; // Prefab para ser instanciado
void Start(){
Instantiate (objetoASerInstanciado, transform.position, Quaternion.identity); // Comando para instanciar
}
Da uma olhada aqui: https://docs.unity3d.com/ScriptReference/Object.Instantiate.html
valeu vai ajudar muito, mas queria fazer um instancia do eixo y -y. obrigado pela dica
newstudio- Iniciante
- PONTOS : 2997
REPUTAÇÃO : 0
Respeito as regras :
Re: como instanciar objetos
Basta ignorar os outros eixos...
Da uma olhada:
https://www.schultzgames.com/t192-tutorial-como-utilizar-a-funcao-instantiate?highlight=instantiate
Da uma olhada:
https://www.schultzgames.com/t192-tutorial-como-utilizar-a-funcao-instantiate?highlight=instantiate
Re: como instanciar objetos
da uma olhada no meu script
posição do eixos
- Código:
public PathDefinition path; //GameObject com o script PathDefinition
public float speed = 1; //Velocidade de movimentaçao da plataforma
public float maxDistanceToGoal = .1f; //Distância que a plataforma chegará dos pontos
private IEnumerator<Transform> _currentPoint; //Ponto atual para o qual a plataforma irá se deslocar
public void Start (){
//Verifica se a variável path está preenchida com o componente PathDefinition
if(path == null){
Debug.LogError("Path cannot be null", gameObject);
return;
}
//Chama a função que retorna o índice do vetor Points (ou seja, o ponto alvo da plataforma.
_currentPoint = path.GetPathEnumerator ();
//Avança o enumerador para o próximo elemento da coleção.
//Retorna true se o enumerador tiver avançado com êxito para o próximo elemento
//Retonra false se o enumerador tiver passado o final da coleção.
_currentPoint.MoveNext ();
//Se após o MoveNext, o elemento atual não existir (for nulo), termina a execução do método
if (_currentPoint.Current == null)
return;
//Altera a posição do gameObject onde esse script está anexado (no caso a plataforma que irá se mover),
//para a posição do elemento atual da coleção de pontos.
//Isso ocorre no médoto Start e faz com que ao iniciar o game, a plataforma se posicione em cima do primeiro ponto da rota que irá seguir.
//Não importa onde a plataforma esteja posicionada no mundo, ao iniciar, ela será posicionada no primeiro _currentPoint.
transform.position = _currentPoint.Current.position;
}
public void Update (){
if (_currentPoint == null || _currentPoint.Current == null) //Verifica que exista ao menos 1 ponto definido
return;
//Usa o MoveTowards para fazer o deslocamento do objeto entre a posição atual dele e a posição do atual elemento da coleção.
transform.position = Vector3.MoveTowards(transform.position, _currentPoint.Current.position, Time.deltaTime * speed);
//Verifica a distância entre a posição atual da plataforma e a posição do ponto atual
var distance = Vector3.Distance (transform.position, _currentPoint.Current.position);
//Quando chegamos no ponto atual, este muda para o próximo ponto da rota
if (distance < maxDistanceToGoal)
_currentPoint.MoveNext ();
}
}
posição do eixos
- Código:
public class PathDefinition : MonoBehaviour {
//Declara vetor onde serao atribuídos os pontos pelos quais a plataforma irá passar
//Um ponto é um objeto vazio posicionado no mundo e atribuído ao vetor Points
public Transform[] points;
public IEnumerator<Transform> GetPathEnumerator(){
//Verifica se há ao menos 1 ponto definido (1 posição no vetor Points)
//Caso não haja, a plataforma não se move
if(points == null || points.Length < 1)
yield break;
//Direção de movimento. Se 1, vai percorrer o vetor points em direção ao final. Quando invertido para -1, volta pro início.
var direction = 1;
var index = 0; //Valor que será retornado como índice do vetor Points
while (true){
//retorna o índice do vetor Points
yield return points[index];
if(points.Length == 1)
continue;
//Quando index é Zero, significa que a plataforma está no primeiro ponto do vetor Points,
//então muda direção para 1 e assim permanece até chegar no fim do vetor
if(index <= 0)
direction = 1;
//Ao chegar no fim do vetor Points, a direção é invertida recebendo -1 e fazendo com que plataforma
//se mova para os pontos anteriores (voltando nos índices do vetor Points).
else if (index >= points.Length -1)
direction = -1;
//Atualiza o índice que será retornado para o script de movimento
index = index + direction;
}
}
//Função utilizada para Debug. Gera a linha que interliga os pontos para facilitar a disposição
//deles pelo mundo e a fácil visualização do trajeto que a plataforma irá percorrer
public void OnDrawGizmos(){
if(points == null || points.Length < 2)
return;
for (var i = 1; i < points.Length; i++){
Gizmos.DrawLine(points[i -1].position, points[i].position);
}
}
}
newstudio- Iniciante
- PONTOS : 2997
REPUTAÇÃO : 0
Respeito as regras :
Re: como instanciar objetos
esse script instancia o objeto, mas ele esta muito brusco a movimentação da plataforma, queria uma coisa mais suave na hora de instancia um objeto para cima e para baixo
newstudio- Iniciante
- PONTOS : 2997
REPUTAÇÃO : 0
Respeito as regras :
Re: como instanciar objetos
OK, mas nenhum destes 2 scripts tem instantiate... tem como mandar todos os scripts envolvidos COMPLETOS ?
Tópicos semelhantes
» Como prender objetos em um jogador?
» [Duvida] Como Tocar em objetos
» Como sincronizar objetos?? (Network)
» Como arrastar objetos com o dedo?
» como coletar objetos e passar de fase
» [Duvida] Como Tocar em objetos
» Como sincronizar objetos?? (Network)
» Como arrastar objetos com o dedo?
» como coletar objetos e passar de fase
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos