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 Very Happy
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
Jogo Demo(Lost and Alone)
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
Preciso de um modelo 3D
[Prototipo] : [MyLifeInSevenSeconds]
[AJUDA] Atirar no meio da animação
Duvidas em relação a armmas
problema com Movimento usando Rigidbody
Change Material
[Formacão de equipe] --Key System--
[AJUDA] CommandInvokationFailure: Failed to build apk
Nav mesh em tempo real e fazer as rodas girarem
bug do meu jogo
Preciso 1 Programador
Gostaria De Entrar em Uma Equipe ! :D
Problema com load (android)
Quanto tempo ?
so seguir quando ver
Atualizado (The Pyramid 1.1.1)
Mudar a Cena ao Apertar o Button
Chat android por local?
Esconder-se estilo OutLast
[RESOLVIDO] Conversão C# para JavaScript
Problema no Network
Sumindo os detalhes no UV Mapping
Animação faz objeto mudar de posição?
[ERRO DO PHOTON] Script do Photon com a unity
esse e o novo jogo que estou criando "my dream" ,um projeto pequeno.
Desenho - Sword concept
Jogo que estou desenvolvendo "Alone"
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
[TUTORIAL] Evitar Sombras ULTRA escuras após trocar de cena
[Artigo]Delegates - Entendendo e Aplicando na Unity
Raposa: Projeto Laranja - Meu jogo,O que acham?
Sistema de Futebol(Chutar bola e carrega-la até o gol)
Enhance - Goodbye SDK fatigue! Ads and more in Minutes!
[RESOLVIDO] SUSPENSÃO
Fazer sombras usando sprites
Canvas: como trazer objeto pra frente de outro?
Meu primeiro Rpg
[RESOLVIDO] Dúvida com audio.stop e audio.play
save de objetos coletados
[RESOLVIDO] Animação alteração posição do objeto.
[RESOLVIDO] Animação De camera Procedural Tem como ?
Fazer efeito de distorção
Problema na compilaçao para android
[TUTORIAL] Menu Pause AVANÇADO (Unity 5.3 ou superior)
Qual o melhor formato de Textura?
Movimento do Sonic
Pokémon TCG-Erro de tela rosa
Melhor lugar para Publicar uma Demo
[AJUDA] Sistema de chuva
Dúvida com simulação de marcha de carros..
Precisamos de um Level Desgner ou Programador, que entenda de Otimização de Senario
Dúvida se código da unity é obsoleto
Jumper boy
Demo Terror
Enfrente Seu Pesadelo
Alguem pode me dizer qual é a função que limita o framerate do game, no unity 5 ?
como fazer trocar a imagem q está no UI canvas ?
problemas ao sincronizar healthbar entre os player (photon)
Reload Arma
Servidores dedicados - BatchMode
Como dizer que um numero é diferente do outro?
Optimização do Android
[TUTORIAL] 42 ÓTIMAS DICAS DE OTIMIZAÇÃO PARA JOGOS MOBILE (Android)
Ativar animação
como criptografar um texto e descriptografar em c#
existe algum método para instanciar sprites ?
Como lançar um objeto para um local via touch?
Ajuda de como fazer um jogo
Ajuda com áudio de carro
Assets tanque de guerra
Como alterar rectTransform de objeto
Como acesso uma variável em outro script?
Barra de power
[DEVLOG] Projeto - Pocket Girl Blade - Atualização
Problema na instalação do SDK Android
Ranking com nome
como ajustar o UnityEngine.UI.text via script para qualquer resolução?
PAGO POR TUTORIAIS EM VIDEO ALGUÉM INTERESSADO??
[RESOLVIDO] Alguem conhece um tutorial como este?
Alterar as qualidades das sombras com um dropdown
Como ter a mesma imagem em todos os dispositivos?
[TUTORIAL] Pegar e Dropar item no chao.[2.0]
MultiPlayer Local Android!
Asset Store quantos % fica pra ela?
Os Bentônicos - O Jogo
[TUTORIAL] Definindo as resoluções suportadas
[RESOLVIDO] Problema com Visual Studio
Freio abs duvida
Dicas para melhorar o desempenho?
desafio do codigo(Treinamento e raciocinio)
Script para visualizar objetos igual ao do Resident Evil 7
Alterar WaterMode do WaterProDaytime Via script
Como resolvo esse problema ?
Acionar mecanismos nativos do android
[TUTORIAL] Sistema de EXP, upar níveis, entre outros
[GUIA]Como desenvolver meu primeiro jogo?
Apenas uma pergunta
Hoje à(s) 10:43 pm
Hoje à(s) 10:18 pm
Hoje à(s) 10:15 pm
Hoje à(s) 9:43 pm
Hoje à(s) 9:41 pm
Hoje à(s) 9:26 pm
Hoje à(s) 9:23 pm
Hoje à(s) 9:03 pm
Hoje à(s) 8:04 pm
Hoje à(s) 7:57 pm
Hoje à(s) 7:47 pm
Hoje à(s) 7:30 pm
Hoje à(s) 7:07 pm
Hoje à(s) 6:20 pm
Hoje à(s) 5:02 pm
Hoje à(s) 3:51 pm
Hoje à(s) 2:09 pm
Hoje à(s) 1:58 pm
Hoje à(s) 1:48 pm
Hoje à(s) 2:56 am
Ontem à(s) 11:31 pm
Ontem à(s) 11:11 pm
Ontem à(s) 8:52 pm
Ontem à(s) 7:51 pm
Ontem à(s) 5:41 pm
Ontem à(s) 3:58 pm
Ontem à(s) 1:39 pm
Ontem à(s) 12:35 pm
Ontem à(s) 11:59 am
Ontem à(s) 11:24 am
Ontem à(s) 10:54 am
Ontem à(s) 2:04 am
Ontem à(s) 1:24 am
Ontem à(s) 1:04 am
Qua Dez 13, 2017 11:37 pm
Qua Dez 13, 2017 11:09 pm
Qua Dez 13, 2017 8:23 pm
Qua Dez 13, 2017 2:20 pm
Qua Dez 13, 2017 1:49 pm
Qua Dez 13, 2017 1:22 pm
Qua Dez 13, 2017 1:11 pm
Qua Dez 13, 2017 12:57 pm
Qua Dez 13, 2017 12:41 pm
Qua Dez 13, 2017 1:16 am
Qua Dez 13, 2017 12:56 am
Qua Dez 13, 2017 12:10 am
Qua Dez 13, 2017 12:08 am
Ter Dez 12, 2017 10:23 pm
Ter Dez 12, 2017 9:57 pm
Ter Dez 12, 2017 9:53 pm
Ter Dez 12, 2017 9:37 pm
Ter Dez 12, 2017 9:18 pm
Ter Dez 12, 2017 8:26 pm
Ter Dez 12, 2017 7:40 pm
Ter Dez 12, 2017 6:27 pm
Ter Dez 12, 2017 5:44 pm
Ter Dez 12, 2017 5:43 pm
Ter Dez 12, 2017 5:34 pm
Ter Dez 12, 2017 2:25 pm
Ter Dez 12, 2017 12:49 pm
Ter Dez 12, 2017 11:34 am
Ter Dez 12, 2017 4:34 am
Seg Dez 11, 2017 9:28 pm
Seg Dez 11, 2017 8:05 pm
Seg Dez 11, 2017 7:39 pm
Seg Dez 11, 2017 7:03 pm
Seg Dez 11, 2017 6:47 pm
Seg Dez 11, 2017 6:19 pm
Seg Dez 11, 2017 4:11 pm
Seg Dez 11, 2017 3:50 pm
Seg Dez 11, 2017 3:13 pm
Seg Dez 11, 2017 1:58 pm
Seg Dez 11, 2017 1:19 pm
Seg Dez 11, 2017 1:14 pm
Seg Dez 11, 2017 10:58 am
Seg Dez 11, 2017 8:59 am
Seg Dez 11, 2017 8:55 am
Seg Dez 11, 2017 12:32 am
Dom Dez 10, 2017 11:53 pm
Dom Dez 10, 2017 9:12 pm
Dom Dez 10, 2017 8:34 pm
Dom Dez 10, 2017 6:16 pm
Dom Dez 10, 2017 6:16 pm
Dom Dez 10, 2017 6:14 pm
Dom Dez 10, 2017 6:13 pm
Dom Dez 10, 2017 4:50 pm
Dom Dez 10, 2017 1:31 pm
Dom Dez 10, 2017 11:29 am
Dom Dez 10, 2017 12:29 am
Sab Dez 09, 2017 11:31 pm
Sab Dez 09, 2017 11:17 pm
Sab Dez 09, 2017 9:56 pm
Sab Dez 09, 2017 7:16 pm
Sab Dez 09, 2017 7:11 pm
Sab Dez 09, 2017 4:55 pm
Sab Dez 09, 2017 2:33 pm
Sab Dez 09, 2017 1:15 pm
Sab Dez 09, 2017 12:15 am
Sex Dez 08, 2017 9:18 pm
Zecandy
Zecandy
Zecandy
Phph09
recagonlei
Zecandy
Zecandy
michelly
Phph09
Fagner
glauco
FernandoViniciusSchultz
Locodapraça
ErikBreno360
XN4k3Dbr
gurgelg752
Zecandy
MarceloYBP
John Rambo
Encracker
Phph09
lesgoy
recagonlei
RW.
GabrielBs1409
PatifeCraft
Callyde Jr
recagonlei
BRGC
dstaroski
MarceloYBP
dimmuo
MarceloYBP
Água Sem Hidrogênio
recagonlei
WesleyLemosLeal
fabriciorsz34
Zecandy
MarceloYBP
Cristianolop
Phph09
XN4k3Dbr
BRGC
Flávio
Eduardoro39
Phph09
MarceloYBP
DSK
recagonlei
natanael.olimpio
PatifeCraft
Madness
Jhonatham1
Flávio
googolepton
MarceloYBP
MarceloYBP
FelipeGD
dstaroski
Valakinhas
John Rambo
hen000
recagonlei
Água Sem Hidrogênio
natanael.olimpio
Zecandy
recagonlei
John Rambo
recagonlei
recagonlei
Nyland
erifmeurer
recagonlei
recagonlei
XN4k3Dbr
dstaroski
dstaroski
Flávio
lesgoy
oilson
GabrielBs1409
recagonlei
lesgoy
glauco
recagonlei
recagonlei
Josivaldo Augusto
guimaraf
Flávio
Nyland
Ghosthy
felipehobs1
Phph09
BRGC
Fagner
XN4k3Dbr
Jorge Nunes
dimmuo
Josivaldo Augusto

[Ajuda] Variavel não esta recebendo o valor do outro script

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

DÚVIDA [Ajuda] Variavel não esta recebendo o valor do outro script

Mensagem por Ronmaster em Sex Jun 16, 2017 1:07 am

Queria ajuda pra saber o que pode esta errado, estou fazendo um jogo de carta, e estou tentando fazer um sistema com raycast pra selecionar as cartas da mao que serão ativa, ao clicar sobre a carta um objeto fica selecionado e a ideia era usar o objeto da variavel ObjetoSelecionado pra pegar o valor int da variavel IndIST do script da card e usar esse valor no indice da lista da mao para remover o elemento da lista, mas nao esta funcional dessa forma e aparece o erro   NullReferenceException: Object reference not set to an instance of an object  se alguem puder me ajudar  vou postar os 2 scripts


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

public class CardsDeck : MonoBehaviour {

 public List<GameObject> deck = new List<GameObject>();

 public List<GameObject> cards = new List<GameObject>();
 public List<GameObject> mao = new List<GameObject>();
 private int cardsSacado = 0;
 private bool showReset = false;

 public List<Transform> CartasM = new List<Transform>();
 GameObject[] Cartas;
 public List<bool> Usado = new List<bool>();
 public GameObject ObjetoSelecionado;
 public bool selecionar = false;
 public Camera kamera;
 public Vector3 distance;
 Transform CartasT;
 public int index = -1;
 public int auxIndice ;
 float leque = 15.0f;
 public float auxLeque;
 
void ResetDeck()
 {
 cardsSacado = 0;
 for (int i = 0; i < mao.Count; i++) {
 Destroy(mao[i]);
 Usado[i] = false;
 }
 CartasM.Clear();
 mao.Clear();
 cards.Clear();
 cards.AddRange(deck);
 showReset = false;
 }

 GameObject SacaCard (){

 if(cards.Count == 0)
 {
 showReset = true;
 return null;
 }

 int card = Random.Range(0, cards.Count - 1);
 GameObject go = GameObject.Instantiate(cards[card]) as GameObject;
 cards.RemoveAt(card);
 index = index + 1;

 if(cards.Count == 0) {
 showReset = true;
 }
 
 return go;
 }

 void Start () {
 
 ResetDeck();
 auxLeque = leque;
 Sort();
 }
 
 // Update is called once per frame
 void Update () {

 SelectCarta ();

 
 if (!showReset) {

 if(Input.GetKeyDown(KeyCode.PageUp))  
 {
 MoveOrdenaCard();
 auxLeque = auxLeque - 1.5f;
 }
 }
 else {
 // Reset button
 if(Input.GetKeyDown(KeyCode.Home))  
 {
 ResetDeck();
 auxLeque = leque;
 }
 }
 // GameOver button
 if(Input.GetKeyDown(KeyCode.PageDown))  
 {
 GameOver();
 }
 }

 void GameOver()
 {
 cardsSacado = 0;
 for (int m = 0; m < mao.Count; m++) {
 Destroy(mao[m]);
 Usado[m] = false;
 }
 CartasM.Clear();
 mao.Clear();
 cards.Clear();
 cards.AddRange(deck);

 }

 public void SelectCarta ()
 {
 if(Input.GetMouseButtonDown (0)){
 
 
 
 RaycastHit hit;
 if(Physics.Raycast(kamera.ScreenPointToRay(Input.mousePosition),out hit, LayerMask.GetMask("Carta")))
 {
 if (hit.collider.gameObject.tag == "Cartas" && Input.GetMouseButtonDown (0)) {
 int indexx = 0;
 ObjetoSelecionado = hit.transform.gameObject;
 ObjetoSelecionado.GetComponent<Card>().IndIST = auxIndice;
 mao.RemoveAt(auxIndice);
 Usado[auxIndice] = false;
 Debug.Log(gameObject);
Debug.Log(auxIndice);
index = index - 1;
auxLeque = auxLeque + 1.5f;

 selecionar = true;
 return;
 }
 
 }
 if(selecionar == true && Input.GetMouseButtonDown (0)){
 selecionar = false;
 return;
 }
 }

 }

 void MoveOrdenaCard()
 {
 GameObject newCard = SacaCard();
 
 if (newCard == null) {
 Debug.Log("Out of Cards");
 showReset = true;
 return;
 }
 mao.Add(newCard);
 Usado[cardsSacado] = true;
 cardsSacado ++;

 Cartas = GameObject.FindGameObjectsWithTag("Cartas");
 for(int i = 0; i<Cartas.Length; i++){
 CartasT = Cartas[i].GetComponent<Transform> ();
 }
 CartasM.Add(CartasT);

 
 
 }
 void Sort()
 {
 Vector3 startPos = new Vector3(distance.x * (CartasM.Count / 2), distance.y * (CartasM.Count / 2),distance.z * (CartasM.Count / 2));
 
 Vector3 direction = startPos;
 direction.y = 0;
 
 for (int i = 0; i < CartasM.Count; i++)
 {
 CartasM[i].GetComponent<Card>().direction = direction;
 direction.x += distance.x;
 
 if (i >= (CartasM.Count / 2))
 direction.y -= startPos.y;
 else
 direction.y += startPos.y;
 }
 }

}

e esse é o script da carta que eu quero acessar

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

public class Card : MonoBehaviour {

 public int ID, indice;
 public string Nome;
 public Texture2D imagem;
 //public GameObject MAO;

// Animator anim;
// public bool CartaAtivada = false;
 public GameObject deck;
 public int IndIST;


 public Vector3 direction = new Vector3();
 float FLeque ;

 void Start () {

 deck = GameObject.FindWithTag("Deck");
 IndIST = deck.GetComponent<CardsDeck>().index;
// anim = GetComponent<Animator>();
 
 FLeque = deck.GetComponent<CardsDeck>().auxLeque;
 direction = new Vector3 (FLeque, -14, -24);
 }
 
 // Update is called once per frame
 void Update () {

 
 transform.position = Vector3.Lerp (transform.position, direction, 3 * Time.deltaTime);

 }

}

o erro ocorre na linhas 123 sendo que o objeto é setado na variavel mas nao consigo pegar o valor que eu quero do outro script
avatar
Ronmaster
Membro
Membro

PONTOS : 322
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: [Ajuda] Variavel não esta recebendo o valor do outro script

Mensagem por JoelMJunior em Sex Jun 16, 2017 1:59 am

Sou um iniciante em programação, mas nesse caso acho que tem que ver se o objeto que você quer setar em "ObjetoSelecionado" tem Box Collider e se o script Card é um dos seus componentes.

JoelMJunior
MembroAvançado

PONTOS : 301
REPUTAÇÃO : 6
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: [Ajuda] Variavel não esta recebendo o valor do outro script

Mensagem por Gabriel César O em Sex Jun 16, 2017 2:21 am

Ronmaster escreveu:Queria ajuda pra saber o que pode esta errado, estou fazendo um jogo de carta, e estou tentando fazer um sistema com raycast pra selecionar as cartas da mao que serão ativa, ao clicar sobre a carta um objeto fica selecionado e a ideia era usar o objeto da variavel ObjetoSelecionado pra pegar o valor int da variavel IndIST do script da card e usar esse valor no indice da lista da mao para remover o elemento da lista, mas nao esta funcional dessa forma e aparece o erro   NullReferenceException: Object reference not set to an instance of an object  se alguem puder me ajudar  vou postar os 2 scripts


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

public class CardsDeck : MonoBehaviour {

 public List<GameObject> deck = new List<GameObject>();

 public List<GameObject> cards = new List<GameObject>();
 public List<GameObject> mao = new List<GameObject>();
 private int cardsSacado = 0;
 private bool showReset = false;

 public List<Transform> CartasM = new List<Transform>();
 GameObject[] Cartas;
 public List<bool> Usado = new List<bool>();
 public GameObject ObjetoSelecionado;
 public bool selecionar = false;
 public Camera kamera;
 public Vector3 distance;
 Transform CartasT;
 public int index = -1;
 public int auxIndice ;
 float leque = 15.0f;
 public float auxLeque;
 
void ResetDeck()
 {
 cardsSacado = 0;
 for (int i = 0; i < mao.Count; i++) {
 Destroy(mao[i]);
 Usado[i] = false;
 }
 CartasM.Clear();
 mao.Clear();
 cards.Clear();
 cards.AddRange(deck);
 showReset = false;
 }

 GameObject SacaCard (){

 if(cards.Count == 0)
 {
 showReset = true;
 return null;
 }

 int card = Random.Range(0, cards.Count - 1);
 GameObject go = GameObject.Instantiate(cards[card]) as GameObject;
 cards.RemoveAt(card);
 index = index + 1;

 if(cards.Count == 0) {
 showReset = true;
 }
 
 return go;
 }

 void Start () {
 
 ResetDeck();
 auxLeque = leque;
 Sort();
 }
 
 // Update is called once per frame
 void Update () {

 SelectCarta ();

 
 if (!showReset) {

 if(Input.GetKeyDown(KeyCode.PageUp))  
 {
 MoveOrdenaCard();
 auxLeque = auxLeque - 1.5f;
 }
 }
 else {
 // Reset button
 if(Input.GetKeyDown(KeyCode.Home))  
 {
 ResetDeck();
 auxLeque = leque;
 }
 }
 // GameOver button
 if(Input.GetKeyDown(KeyCode.PageDown))  
 {
 GameOver();
 }
 }

 void GameOver()
 {
 cardsSacado = 0;
 for (int m = 0; m < mao.Count; m++) {
 Destroy(mao[m]);
 Usado[m] = false;
 }
 CartasM.Clear();
 mao.Clear();
 cards.Clear();
 cards.AddRange(deck);

 }

 public void SelectCarta ()
 {
 if(Input.GetMouseButtonDown (0)){
 
 
 
 RaycastHit hit;
 if(Physics.Raycast(kamera.ScreenPointToRay(Input.mousePosition),out hit, LayerMask.GetMask("Carta")))
 {
 if (hit.collider.gameObject.tag == "Cartas" && Input.GetMouseButtonDown (0)) {
 int indexx = 0;
 ObjetoSelecionado = hit.transform.gameObject;
 ObjetoSelecionado.GetComponent<Card>().IndIST = auxIndice;
 mao.RemoveAt(auxIndice);
 Usado[auxIndice] = false;
 Debug.Log(gameObject);
Debug.Log(auxIndice);
index = index - 1;
auxLeque = auxLeque + 1.5f;

 selecionar = true;
 return;
 }
 
 }
 if(selecionar == true && Input.GetMouseButtonDown (0)){
 selecionar = false;
 return;
 }
 }

 }

 void MoveOrdenaCard()
 {
 GameObject newCard = SacaCard();
 
 if (newCard == null) {
 Debug.Log("Out of Cards");
 showReset = true;
 return;
 }
 mao.Add(newCard);
 Usado[cardsSacado] = true;
 cardsSacado ++;

 Cartas = GameObject.FindGameObjectsWithTag("Cartas");
 for(int i = 0; i<Cartas.Length; i++){
 CartasT = Cartas[i].GetComponent<Transform> ();
 }
 CartasM.Add(CartasT);

 
 
 }
 void Sort()
 {
 Vector3 startPos = new Vector3(distance.x * (CartasM.Count / 2), distance.y * (CartasM.Count / 2),distance.z * (CartasM.Count / 2));
 
 Vector3 direction = startPos;
 direction.y = 0;
 
 for (int i = 0; i < CartasM.Count; i++)
 {
 CartasM[i].GetComponent<Card>().direction = direction;
 direction.x += distance.x;
 
 if (i >= (CartasM.Count / 2))
 direction.y -= startPos.y;
 else
 direction.y += startPos.y;
 }
 }

}

e esse é o script da carta que eu quero acessar

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

public class Card : MonoBehaviour {

 public int ID, indice;
 public string Nome;
 public Texture2D imagem;
 //public GameObject MAO;

// Animator anim;
// public bool CartaAtivada = false;
 public GameObject deck;
 public int IndIST;


 public Vector3 direction = new Vector3();
 float FLeque ;

 void Start () {

 deck = GameObject.FindWithTag("Deck");
 IndIST = deck.GetComponent<CardsDeck>().index;
// anim = GetComponent<Animator>();
 
 FLeque = deck.GetComponent<CardsDeck>().auxLeque;
 direction = new Vector3 (FLeque, -14, -24);
 }
 
 // Update is called once per frame
 void Update () {

 
 transform.position = Vector3.Lerp (transform.position, direction, 3 * Time.deltaTime);

 }

}

o erro ocorre na linhas 123 sendo que o objeto é setado na variavel mas nao consigo pegar o valor que eu quero do outro script
talvez te ajude!
avatar
Gabriel César O
Programador

Masculino PONTOS : 1467
REPUTAÇÃO : 210
Idade : 16
Áreas de atuação : (ESTUDANDO SEGUNDO GRAU), (FUÇANDO NO UNITY)){
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: [Ajuda] Variavel não esta recebendo o valor do outro script

Mensagem por dipode em Sex Jun 16, 2017 2:36 am

Ronmaster escreveu:Queria ajuda pra saber o que pode esta errado, estou fazendo um jogo de carta, e estou tentando fazer um sistema com raycast pra selecionar as cartas da mao que serão ativa, ao clicar sobre a carta um objeto fica selecionado e a ideia era usar o objeto da variavel ObjetoSelecionado pra pegar o valor int da variavel IndIST do script da card e usar esse valor no indice da lista da mao para remover o elemento da lista, mas nao esta funcional dessa forma e aparece o erro   NullReferenceException: Object reference not set to an instance of an object  se alguem puder me ajudar  vou postar os 2 scripts


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

public class CardsDeck : MonoBehaviour {

 public List<GameObject> deck = new List<GameObject>();

 public List<GameObject> cards = new List<GameObject>();
 public List<GameObject> mao = new List<GameObject>();
 private int cardsSacado = 0;
 private bool showReset = false;

 public List<Transform> CartasM = new List<Transform>();
 GameObject[] Cartas;
 public List<bool> Usado = new List<bool>();
 public GameObject ObjetoSelecionado;
 public bool selecionar = false;
 public Camera kamera;
 public Vector3 distance;
 Transform CartasT;
 public int index = -1;
 public int auxIndice ;
 float leque = 15.0f;
 public float auxLeque;
 
void ResetDeck()
 {
 cardsSacado = 0;
 for (int i = 0; i < mao.Count; i++) {
 Destroy(mao[i]);
 Usado[i] = false;
 }
 CartasM.Clear();
 mao.Clear();
 cards.Clear();
 cards.AddRange(deck);
 showReset = false;
 }

 GameObject SacaCard (){

 if(cards.Count == 0)
 {
 showReset = true;
 return null;
 }

 int card = Random.Range(0, cards.Count - 1);
 GameObject go = GameObject.Instantiate(cards[card]) as GameObject;
 cards.RemoveAt(card);
 index = index + 1;

 if(cards.Count == 0) {
 showReset = true;
 }
 
 return go;
 }

 void Start () {
 
 ResetDeck();
 auxLeque = leque;
 Sort();
 }
 
 // Update is called once per frame
 void Update () {

 SelectCarta ();

 
 if (!showReset) {

 if(Input.GetKeyDown(KeyCode.PageUp))  
 {
 MoveOrdenaCard();
 auxLeque = auxLeque - 1.5f;
 }
 }
 else {
 // Reset button
 if(Input.GetKeyDown(KeyCode.Home))  
 {
 ResetDeck();
 auxLeque = leque;
 }
 }
 // GameOver button
 if(Input.GetKeyDown(KeyCode.PageDown))  
 {
 GameOver();
 }
 }

 void GameOver()
 {
 cardsSacado = 0;
 for (int m = 0; m < mao.Count; m++) {
 Destroy(mao[m]);
 Usado[m] = false;
 }
 CartasM.Clear();
 mao.Clear();
 cards.Clear();
 cards.AddRange(deck);

 }

 public void SelectCarta ()
 {
 if(Input.GetMouseButtonDown (0)){
 
 
 
 RaycastHit hit;
 if(Physics.Raycast(kamera.ScreenPointToRay(Input.mousePosition),out hit, LayerMask.GetMask("Carta")))
 {
 if (hit.collider.gameObject.tag == "Cartas" && Input.GetMouseButtonDown (0)) {
 int indexx = 0;
 ObjetoSelecionado = hit.transform.gameObject;
 ObjetoSelecionado.GetComponent<Card>().IndIST = auxIndice;
 mao.RemoveAt(auxIndice);
 Usado[auxIndice] = false;
 Debug.Log(gameObject);
Debug.Log(auxIndice);
index = index - 1;
auxLeque = auxLeque + 1.5f;

 selecionar = true;
 return;
 }
 
 }
 if(selecionar == true && Input.GetMouseButtonDown (0)){
 selecionar = false;
 return;
 }
 }

 }

 void MoveOrdenaCard()
 {
 GameObject newCard = SacaCard();
 
 if (newCard == null) {
 Debug.Log("Out of Cards");
 showReset = true;
 return;
 }
 mao.Add(newCard);
 Usado[cardsSacado] = true;
 cardsSacado ++;

 Cartas = GameObject.FindGameObjectsWithTag("Cartas");
 for(int i = 0; i<Cartas.Length; i++){
 CartasT = Cartas[i].GetComponent<Transform> ();
 }
 CartasM.Add(CartasT);

 
 
 }
 void Sort()
 {
 Vector3 startPos = new Vector3(distance.x * (CartasM.Count / 2), distance.y * (CartasM.Count / 2),distance.z * (CartasM.Count / 2));
 
 Vector3 direction = startPos;
 direction.y = 0;
 
 for (int i = 0; i < CartasM.Count; i++)
 {
 CartasM[i].GetComponent<Card>().direction = direction;
 direction.x += distance.x;
 
 if (i >= (CartasM.Count / 2))
 direction.y -= startPos.y;
 else
 direction.y += startPos.y;
 }
 }

}

e esse é o script da carta que eu quero acessar

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

public class Card : MonoBehaviour {

 public int ID, indice;
 public string Nome;
 public Texture2D imagem;
 //public GameObject MAO;

// Animator anim;
// public bool CartaAtivada = false;
 public GameObject deck;
 public int IndIST;


 public Vector3 direction = new Vector3();
 float FLeque ;

 void Start () {

 deck = GameObject.FindWithTag("Deck");
 IndIST = deck.GetComponent<CardsDeck>().index;
// anim = GetComponent<Animator>();
 
 FLeque = deck.GetComponent<CardsDeck>().auxLeque;
 direction = new Vector3 (FLeque, -14, -24);
 }
 
 // Update is called once per frame
 void Update () {

 
 transform.position = Vector3.Lerp (transform.position, direction, 3 * Time.deltaTime);

 }

}

o erro ocorre na linhas 123 sendo que o objeto é setado na variavel mas nao consigo pegar o valor que eu quero do outro script

Você está esquecendo de verificar se o hit não é nulo:

Código:
[size=14][b]if[/b][/size][size=14] [/size][size=14]([/size][size=14]hit[/size][size=14].[/size][size=14]collider[/size][size=14][color=#666666] != null){[/color][/size]
[color=#666666][font=Consolas, Bitstream Vera Sans Mono, Andale Mono, Monaco, DejaVu Sans Mono, Lucida Console, monospace][size=14]//Aqui coloca o codigo que esteja usando "[/size][/font][/color]hit.collider"
[size=14][color=#666666]}[/color][/size]
avatar
dipode
MembroAvançado

PONTOS : 1073
REPUTAÇÃO : 38
Respeito as regras :

Ver perfil do usuário https://github.com/perdugames

Voltar ao Topo Ir em baixo

DÚVIDA Re: [Ajuda] Variavel não esta recebendo o valor do outro script

Mensagem por dipode em Sex Jun 16, 2017 2:38 am

Código:
raycast...

if(hit.collider != null){
//Aqui coloca todo o codigo que esteja usando "hit.collider"

...

}
avatar
dipode
MembroAvançado

PONTOS : 1073
REPUTAÇÃO : 38
Respeito as regras :

Ver perfil do usuário https://github.com/perdugames

Voltar ao Topo Ir em baixo

DÚVIDA Re: [Ajuda] Variavel não esta recebendo o valor do outro script

Mensagem por Ronmaster em Sab Jun 17, 2017 2:09 am

Valeu galera eu consegui aqui, no caso antes eu nao estava tentando pegar o valor via getComponent porque dava aquele erro, eu chequei os components fiz todos os testes e esta tudo certo, o raycast tambem ta funcional, mas antes eu nao estava conseguindo pegar o valor via getComponent entao eu mudei a variavel indIST pra static e a igualei à indice e chamei via getComponent novamente no outro script e funcionou, valeu mesmo Very Happy agora ja estou com um outro problema diferente,  vou tentar ver se resolvo
avatar
Ronmaster
Membro
Membro

PONTOS : 322
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: [Ajuda] Variavel não esta recebendo o valor do outro script

Mensagem por Ronmaster em Sab Jun 17, 2017 11:59 pm

Galera eu sei que tem como pegar um valor de uma variavel de outro script, mas agora eu queria saber se é possivel modificar ou somar  um valor a uma variavel float por exemplo de um script diferente?
avatar
Ronmaster
Membro
Membro

PONTOS : 322
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: [Ajuda] Variavel não esta recebendo o valor do outro script

Mensagem por PauloFR em Dom Jun 18, 2017 12:05 am

Ronmaster escreveu:Galera eu sei que tem como pegar um valor de uma variavel de outro script, mas agora eu queria saber se é possivel modificar ou somar  um valor a uma variavel float por exemplo de um script diferente?
Sim é possivel ;-;

Código:
public class OutroScript : MonoBehaviour {

public static float Numero2;

}
Código:
public float  Numero1,Soma;

void Start () {
    Soma = Numero1 + OutroScript.Numero2;

}

Também da para fazer isso por uma variavel não static... ;-;
avatar
PauloFR
Instrutor

Masculino PONTOS : 1421
REPUTAÇÃO : 316
Idade : 15
Áreas de atuação : Iniciante:Modelagem e Terminal-Linux. Intermediário:C#,Java,HTML e CSS
Respeito as regras :

Ver perfil do usuário http://ppaulofr.blogspot.com.br

Voltar ao Topo Ir em baixo

DÚVIDA Re: [Ajuda] Variavel não esta recebendo o valor do outro script

Mensagem por Ronmaster em Dom Jun 18, 2017 1:10 am

Blz vou testar aqui Smile
avatar
Ronmaster
Membro
Membro

PONTOS : 322
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

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