Script De Seleção de Objetos
3 participantes
Página 1 de 1
Script De Seleção de Objetos
Então isso em si não é um pedido de um script do zero ou dado, queria apenas que vcs atribuísse um comando de int -1/1 nos botoes onclick que não estou conseguindo colocar dentro do mesmo.. Poderiam me da uma força?
IMAGEM REFERENCIA
IMAGEM REFERENCIA
- Código:
using UnityEngine;
public class Objetos : MonoBehaviour
{
private List<GameObject> ModelosObjetos;
///////////
///////////
private int selecionarindex = 0;
/////////////////////
////////////////////
////////////////////
/////////////////////
//////////////////////////
private void Start()
{
ModelosObjetos= new List<GameObject>();
foreach(Transform t in transform)
{
ModelosObjetos.Add(t.gameObject);
t.gameObject.SetActive(false);
}
ModelosObjetos[selecionarindex].SetActive(true);
}
//////////////////////////////
///////////////////////////////
//////////////////////////////////
public void Selecionar(int index)
{
if(index ==selecionarindex)
return;
if(index < 0 || index >= ModelosObjetos.Count)
return;
ModelosObjetos[selecionarindex].SetActive(false);
selecionarindex = index;
ModelosObjetos[selecionarindex].SetActive(true);
}
}
ffabim- MembroAvançado
- PONTOS : 3355
REPUTAÇÃO : 69
Respeito as regras :
Re: Script De Seleção de Objetos
Mas o que no caso não está conseguindo, configurar o método onClick? Caso seja, adicione 2 botões, clique no + no onClick do script do botão, adicione o game object com o script no campo de objecto, após isso selecione o script -> nome do método e depois coloque os valores inteiros de acordo(-1 para um e 1 para o outro)...
No script deixe assim:
Esse é um método mais fácil sem muitas modificações!
No script deixe assim:
- Código:
int tempIndex = selecionarIndex;
selecionarIndex += index;
if(selecionarIndex < 0 || selecionarIndex>= ModelosObjetos.Count){ selecionarIndex = tempIndex;
return;
}
Esse é um método mais fácil sem muitas modificações!
Re: Script De Seleção de Objetos
Onclick é fácil mexer o negocio é que não conseguindo atribuir tal comando dentro desse script para -1/1.
me diz uma coisa esse script é pra atribuir ou é do zero, pq ainda não vi esse, tá meio que confuso pra mim
if........
me diz uma coisa esse script é pra atribuir ou é do zero, pq ainda não vi esse, tá meio que confuso pra mim
if........
ffabim- MembroAvançado
- PONTOS : 3355
REPUTAÇÃO : 69
Respeito as regras :
Re: Script De Seleção de Objetos
ffabim escreveu:Onclick é fácil mexer o negocio é que não conseguindo atribuir tal comando dentro desse script para -1/1.
me diz uma coisa esse script é pra atribuir ou é do zero, pq ainda não vi esse, tá meio que confuso pra mim.
ffabim- MembroAvançado
- PONTOS : 3355
REPUTAÇÃO : 69
Respeito as regras :
Re: Script De Seleção de Objetos
ffabim escreveu:Onclick é fácil mexer o negocio é que não conseguindo atribuir tal comando dentro desse script para -1/1.
me diz uma coisa esse script é pra atribuir ou é do zero, pq ainda não vi esse, tá meio que confuso pra mim
if........
No caso, o exemplo que citei seria assim... O valor é cacheado, depois atribuído de acordo, caso for positivo, soma, se for negativo ele mesmo sendo "+=" ele irá subtrair... E depois caso seja maior que 0 ou menor que a quantidade da lista, ele segue de acordo, no contrário ele atribui o valor de volta e retorna a função...
Re: Script De Seleção de Objetos
Buguei agora, tá dando uma variedades de erros no script.
Obs. TempIndex não encontrado..... e por ai vai
Obs. TempIndex não encontrado..... e por ai vai
ffabim- MembroAvançado
- PONTOS : 3355
REPUTAÇÃO : 69
Respeito as regras :
Re: Script De Seleção de Objetos
ffabim escreveu:Buguei agora, tá dando uma variedades de erros no script.
Obs. TempIndex não encontrado..... e por ai vai
Tu declarou a variável dentro do scope da void da maneira que eu coloquei? Talvez seja algum "{" que ficou zoado...
Re: Script De Seleção de Objetos
Coloca esse Script num Canvas, cria dois botoes e coloca os dois botoes no campo e preencha a lista com qualquer GameObject
- Código:
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.UI;
public class ObjectSelection : MonoBehaviour
{
[SerializeField] private List<GameObject> _myObjects = new List<GameObject>();
private int _currentIndex;
[SerializeField] private Button _nextButton;
[SerializeField] private Button _previousButton;
private void OnEnable()
{
_nextButton.onClick.AddListener(Next);
_previousButton.onClick.AddListener(Previous);
}
public void Next()
{
if (_currentIndex < _myObjects.Count)
{
Debug.Log("Object Selected: " + _myObjects[_currentIndex].name);
_currentIndex++;
}
}
public void Previous()
{
if (_currentIndex > 0)
{
_currentIndex--;
Debug.Log("Object Selected: " + _myObjects[_currentIndex].name);
}
}
}
Re: Script De Seleção de Objetos
Ainda não está funcionando
ffabim- MembroAvançado
- PONTOS : 3355
REPUTAÇÃO : 69
Respeito as regras :
Re: Script De Seleção de Objetos
Cara, nao precisa colocar tudo dentro do onClick, eu ja fiz a chamada via SCRIPT, voce precisa colocar o botao no script (a referencia dele).
Outra coisa, o codigo nao vai mudar feito magica sua imagem, e preciso programar pra fazer isso, eu apenas te dei o inicio do codigo de selecao, agora voce tem que pegar e ativar/desativa o objeto que ta com a mesma index.
Outra coisa, o codigo nao vai mudar feito magica sua imagem, e preciso programar pra fazer isso, eu apenas te dei o inicio do codigo de selecao, agora voce tem que pegar e ativar/desativa o objeto que ta com a mesma index.
Re: Script De Seleção de Objetos
- Código:
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.UI;
public class ObjectSelection : MonoBehaviour
{
[SerializeField] private List<GameObject> _myPrefabs = new List<GameObject>();
private List<GameObject> _myObjects = new List<GameObject>();
private int _currentIndex;
[SerializeField] private Button _nextButton;
[SerializeField] private Button _previousButton;
private GameObject _nextObject;
private GameObject _previousObject;
private void Start()
{
if (_myPrefabs.Count > 1)
{
foreach (var prefab in _myPrefabs)
{
var temp = Instantiate(prefab, transform.position, transform.rotation);
temp.SetActive(false);
_myObjects.Add(temp);
}
_nextObject = _myObjects[_currentIndex];
_previousObject = _nextObject;
_nextObject.SetActive(true);
}
}
private void OnEnable()
{
_nextButton.onClick.AddListener(Next);
_previousButton.onClick.AddListener(Previous);
}
private void Next()
{
if (_currentIndex < _myObjects.Count - 1)
{
_currentIndex++;
}
else
{
_currentIndex = 0;
}
Select();
}
private void Previous()
{
if (_currentIndex > 0)
{
_currentIndex--;
}
else
{
_currentIndex = _myObjects.Count - 1;
}
Select();
}
private void Select()
{
_previousObject = _nextObject;
_nextObject = _myObjects[_currentIndex];
_previousObject.SetActive(false);
_nextObject.SetActive(true);
}
}
Re: Script De Seleção de Objetos
Entendi, de todo jeito não funcionou o seu script estava duplicando o objeto em si, mais não fazia a troca. ent eu fiz script simplesinho aqui, mais tá dando algo errado no for, poderia me corrigir?
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class ObjectSelection : MonoBehaviour {
public GameObject[] ObjetosSelecionado;
private int Selecao;
public void ProximaSelecao(){
ObjetosSelecionado [Selecao].SetActive (false);
if (Selecao >= ObjetosSelecionado.Length - 1) {
Selecao = 0;
ObjetosSelecionado [Selecao].SetActive (true);
} else {
Selecao++;
ObjetosSelecionado [Selecao].SetActive (true);
}
}
public void AnteriorSelecao(){
ObjetosSelecionado [Selecao].SetActive (true);
if (Selecao >= ObjetosSelecionado.Length -1) {
Selecao = 0;
ObjetosSelecionado [Selecao].SetActive (false);
} else {
Selecao++;
ObjetosSelecionado [Selecao].SetActive (false);
}
}
// Use this for initialization
void Start () {
for (int i = 0; i < ObjetosSelecionado.Length; i++) {
ObjetosSelecionado [i].SetActive (false);
Selecao = 0;
ObjetosSelecionado [0].SetActive (true);
}
}
}
ffabim- MembroAvançado
- PONTOS : 3355
REPUTAÇÃO : 69
Respeito as regras :
Re: Script De Seleção de Objetos
Cara voce simplesmente nao ta sabendo usar... o script funciona perfeitamente.
Lista de Prefabs, vai ser onde voce vai colocar os objetos que deseja instanciar pra selecao e NAO precisa colocar nada no OnClick ele ja faz isso automaticamente.
EDITADO:
Assita o GIF...
Lista de Prefabs, vai ser onde voce vai colocar os objetos que deseja instanciar pra selecao e NAO precisa colocar nada no OnClick ele ja faz isso automaticamente.
EDITADO:
Assita o GIF...
Re: Script De Seleção de Objetos
Fiz outro vídeo mostrando o que acontece.
ffabim- MembroAvançado
- PONTOS : 3355
REPUTAÇÃO : 69
Respeito as regras :
Re: Script De Seleção de Objetos
Amigo, obvio que vai acontecer isso, voce ta colocando Objetos de Instancia onde deveria ser PREFABs dessa forma é claro que vai duplicar, faça prefabs das imagens e logo depois as coloque no script.
Pelo visto nao viu o gif, pois se tivesse visto saberia que os objetos devem ser prefabs.
Pelo visto nao viu o gif, pois se tivesse visto saberia que os objetos devem ser prefabs.
Re: Script De Seleção de Objetos
Fiz como dito, prefab e instanciado na frente da câmera, até joguei o objeto na frente da câmera e nada, não seria algum bug no script por causa da versão do unity, a minha é 5.6.0f3?
ffabim- MembroAvançado
- PONTOS : 3355
REPUTAÇÃO : 69
Respeito as regras :
Re: Script De Seleção de Objetos
Nao sei se voce percebeu mas esta funcionando sim, o problema que eles estao instanciando em posicoes fora da CAMERA.
Na linha 25 voce define a posicao de INSTANCIA.
var temp = Instantiate(prefab, transform.position, transform.rotation);
se quiser que instancie na posicao 0 adicione abaixo:
temp.transform.position = Vector3.zero
Na linha 25 voce define a posicao de INSTANCIA.
var temp = Instantiate(prefab, transform.position, transform.rotation);
se quiser que instancie na posicao 0 adicione abaixo:
temp.transform.position = Vector3.zero
Re: Script De Seleção de Objetos
o script em sí funciona, o negocio que no meu n vai.
mais vou inserir o msm lá no script quando chegar e ksa
mais vou inserir o msm lá no script quando chegar e ksa
ffabim- MembroAvançado
- PONTOS : 3355
REPUTAÇÃO : 69
Respeito as regras :
Re: Script De Seleção de Objetos
Realmente, agora funcionou vlw ae pela sua boa vontade de disponibilizar o script do 0 e a sua paciência tbm :D
ffabim- MembroAvançado
- PONTOS : 3355
REPUTAÇÃO : 69
Respeito as regras :
Tópicos semelhantes
» Script de seleção de player deu erro no UI
» DUVIDA SCRIPT DO MARCOS SELEÇÃO DE PERSONAGEM !
» Objetos não respeitam script
» Parentear Objetos por script C#
» Script para possuir objetos
» DUVIDA SCRIPT DO MARCOS SELEÇÃO DE PERSONAGEM !
» Objetos não respeitam script
» Parentear Objetos por script C#
» Script para possuir objetos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos