

UnityのC#です。

[code]

    public class A{
        public int[] tmp=new int[3]{1,2,3}
    }
    
[/code]

というクラスを

[code]

    public class AddScript : MonoBehaviour {
        A a=new A();
        void Start(){
            a.tmp[0]++;
        }
    
[/code]

という、GameObject（prefab化されており、複数回生成される)に付けられたScriptで呼ぶと、GameObjectが生成されるたびにtmpは初期化され、tmp[0]は1のままになります。  
生成されるたびにtmp[0]の値が増えるようにするにはどうすればよいのでしょうか？


CC BY-SA 4.0
2019-03-13T08:32:32.900
53401
2021-03-06T04:14:40.460
32519
question
c# unity3d
特定のクラスで定義された値を複数の別のクラスで参照し、書き換えたい


staticにして参照渡しすれば解決しました。

* * *

この投稿は @エビうどん
さんの[コメント](https://ja.stackoverflow.com/questions/53401/#comment55976_53401)などを元に編集し、[コミュニティWiki](https://ja.meta.stackoverflow.com/q/1583)として投稿しました。


CC BY-SA 4.0
2021-03-06T04:14:40.460
74443
2021-03-06T04:14:40.460
9820
53401
answer