2017-01-17 1 views
-1

GameObject DataSheetに添付されたdataSheetというスクリプトがあります。他のシーンからブーリアンにアクセスするにはどうすればよいですか?別のシーンからブーリアンにアクセスするにはどうすればよいですか?

+0

別のシーンまたは別のGameObjectからですか?別のシーンから何もアクセスできない – Programmer

+0

@Programmerメインメニューのシーンがあり、ヒントなどのブール値があり、別のシーンからアクセスしてヒントを表示する必要があります – Sharpy

+0

自分の質問に投票している理由を教えてください。あなたは、あなたが何をしているのか、あなたの問題と、あなたが何を期待するのかを言うべきです。また、あなたが試したことに言及する必要があります。人々がより多くの情報を求めなければならない1行または2行の質問をするならば、あなたは閉鎖された質問...下の投票になるでしょう。あなたの将来の質問の参考資料。 – Programmer

答えて

3

新しいシーンを読み込むと、Unityは新しいシーンのオブジェクトを作成する前に古いシーンのすべてのオブジェクトを破棄します。

あなたはDontDestroyOnLoad()

Source

を呼び出すことで、前のシーンからオブジェクトをマークする必要がある。しかし、これはあなたが保存したいクラスを持っているユニティ

+0

それを正しく行うには? – Sharpy

+2

私はこれを間違ったアプローチと呼んでいません。これが私のやり方です。 PlayerPrefsがスケーラブルでスケーラブルでスケーラブルです。 – Maakep

+0

PlayerPrefsが管理できない、またはスケーラブルでないのはなぜですか? – Everts

3

を操作する方法を正しいアプローチではありませんブール値:

private bool myBool = false; 

void LoadingNewScene() 
{ 
    int i = (mybool == true) ? 1 : 0; 
    PlayerPrefs.SetInt("TheValue", i); 
} 

上記はローディング

void Awake(){ 
    if(PlayerPrefs.HasKey("TheValue") == true){ 
     bool result = PlayerPrefs.GetInt("TheValue") > 0; 
    } 
} 

ます。また、このようなOnDestroyかのSceneManagerイベントシステムとしてMonoBehaviourコールバックを使用することができます。NewSceneは、あなたが他のシーンでゲームオブジェクトに添付されたクラスを持つ新しいscene.tThenをロードするときに呼び出されます。

https://docs.unity3d.com/ScriptReference/SceneManagement.SceneManager-sceneLoaded.html

+0

私は夢のPlayerPrefsが何もせずに使用されなくなるのをやめようとしています....それは理由のために** Player Preferences **と呼ばれています。ゲーム自体に関するデータを保存するようには設計されていません。 – Hellium

+0

さて、あなたは、彼らがその "間違った"目的のために広く使われている夢を夢見ることをやめてはなりません。プレーヤーデータを保存するかゲームデータを保存するかは関係ありません。それらは単なるデータです。しかしワウ。 – Everts

+0

PlayerPrefsはレジストリに格納されているため、ユーザーが簡単に変更してコンピュータのゴミを生成することができます。初心者がPlayer Prefsを使うのを防ぐのが良い方法だと思います。 – Hellium

関連する問題