私は最初に尋ねている間に私はねじ込んだので、この質問を再請求しています。だからここに行く。私はUnity3dを使ってポケモンのファンゲームに取り組んでいます。私は現在ヘルス・バーに取り組んでいます。問題は、別のゲームオブジェクトにアタッチされている変数の値が見つからないということです。ここで働いていない私のコードの一部は以下のとおりです。Unity3D-他のgameobjectの変数の値を取得できません
public Pokemon opponent;
public GameObject opponentTemp;
InitiateBattle opponentObject = opponentTemp.GetComponent<InitiateBattle>();
print (opponentObject);
opponent = opponentObject.PokemonToCatch;
print (opponent.Name);
TheirSlider.maxValue = opponent.Hp;
TheirSlider.value = opponent.CHp;
(注意:HPとCHPは、私が作ったクラスの一部であるあなたはその上の情報を必要とする場合、私はあなたにいくつかのマニュアルを参照してあげる)
私がアクセスしようとしているのはopponentObject.PokemonToCatch
です。私はそれを参照しようとすると何も得られない。私は別のゲームオブジェクトのスクリプト(したがって、この質問のタイトル)からそれを参照しようとしています。私のスクリプトのこの部分ではうまくいくようですが、
UserParty = GameObject.Find ("UserData");
Party holdingPokemon = UserParty.GetComponent<Party>();
MySlider.maxValue = holdingPokemon.currentPokemon [0].Hp;
MySlider.value = holdingPokemon.currentPokemon [0].CHp;
私にとっては、同じように見えます。それを除けば、これは本当に私が見つけることができるすべてです。あなたはPokemonToCatch
変数のためのコードが必要な場合 、ここにある:
WildPokemon PokemonEncounter = NativePokemon.GetComponent<WildPokemon>();
public Pokemon PokemonToCatch;
for (int i = 0; i < 4; i++){
//print (i);
if (PokemonEncounter.CatchablePokemon [i].Find == GrassDat.TG){
print ("hit");
AvaliablePkmn.Add (PokemonEncounter.CatchablePokemon [i]);
//AvaliablePkmn [i] = PokemonEncounter.CatchablePokemon [i];
}
}
print (AvaliablePkmn.Count);
int number = Random.Range(0, (AvaliablePkmn.Count + 1));
PokemonToCatch = AvaliablePkmn [number];
print ("PokemonToCatchName:" + PokemonToCatch.Name);
//print (PokemonToCatch.Model);
PokemonToCatch.Model.transform.position = new Vector3 (30, 0, 5);
PokemonToCatch.Model.transform.Rotate (0, 250, 0);
それを要約すると、私はスクリプトからopponentObject.PokemonToCatch
にアクセスしようとしているが、何も見つからなかったされています。空っぽです。
ありがとうございます!
質問を正しく行う方法を学ぶ必要があります。 ** "問題は、別のゲームオブジェクトに添付された変数の値を見つけることができないことです。" **どのような変数ですか?どのゲームオブジェクトですか?その変数はどのようなスクリプトですか? – Programmer
あなたの質問にはあまりにも多くの情報があります。問題のある部分のコードのみを投稿できますか?あなたのゲームオブジェクトがどのようにセットアップされ、スクリプトが添付されているかについてのスクリーングラブも、それをクリアするのに役立ちます。 –
'public Pokemon opponent; public GameObject opponentTemp; InitiateBattle opponentObject = opponentTemp.GetComponent(); print(opponentObject); opponent = opponentObject.PokemonToCatch; print(opponent.Name); TheirSlider.maxValue = opponent.Hp; TheirSlider.value =相手。CHp; ' 私は問題を抱えている部分です。 –
Procinogen