こちらのアプリをUnityから作り直しています
コインパズル
Unityと同じ様にiPhoneでも動かしたい
発生している問題・エラーメッセージ
Xcode側
Xcode Console The script 'coin' could not be instantiated! (Filename: ./Runtime/Scripting/ManagedReference/SerializableManagedRef.cpp Line: 227) A scripted object (probably coin?) has a different serialization layout when loading. (Read 32 bytes but expected 84 bytes) Did you #ifdef UNITY_EDITOR a section of your serialized properties in any of your scripts? (Filename: ./Runtime/Serialize/SerializedFile.cpp Line: 2269) UnloadTime: 0.245417 ms NullReferenceException: Object reference not set to an instance of an object. at coin.yobist () [0x00000] in <00000000000000000000000000000000>:0 at coin.Start () [0x00000] in <00000000000000000000000000000000>:0
Unityでは警告もエラーも出ていません
Listを使うとエラーが出るのではないかと思っておりますが・・
yobistで参照されるyobilistはこの様に定義しており、このリストの中に値を放り込んでいくプロセスでエラーが発生している様です・・
public List<int> yobilist = new List<int>() { };
この状態ではyobilistがnullと判定されてしまうという事でしょうか・・
追記・yobilistがnullではなく、
coinlist[UnityEngine.Random.Range(0, 6)]これがコンソールに出せないことがわかりました
NullReferenceException: Object reference not set to an instance of an object.
Filename: currently not available on il2cpp Line: -1
というエラーが帰ってきます
追記2
System.Random rnd = new System.Random(); // インスタンスを生成
int intResult = rnd.Next(6);
print(intResult);
これに変えるとランダムが作れる様になりました
C#
1public List<int> yobilist = new List<int>() { }; 2 public static int[] coinlist = new int[] { 1, 5, 10, 50, 100, 500 }; 3 void Start() 4 { 5 yobist(); 6 7 } 8 public void yobist() 9 { 10 while (yobilist.Count <= 5) 11 { 12 yobilist.Add(coinlist[UnityEngine.Random.Range(0, 6)]); 13 } 14 }
回答2件
あなたの回答
tips
プレビュー