基本的な2Dジャンプ&私は現在このコードに基づいて開発しています。 https://github.com/angelotadres/RunAndJump基本的な3DユニティゲームシングルトンはBuildでのみNullReferenceExceptionをスローする
Atmビルドを実行すると、AtmによってNullReferenceExceptionがスローされます。ここで
NullReferenceException: Object reference not set to an instance of an object
at RunAndJump.LevelMetadata.get_SceneName() [0x0000c] in
D:\Dropbox\Dropbox\Unity\RunAndJump-master\Assets\Scripts\Level\LevelMetadata.cs:19
at RunAndJump.LevelHandlerScene+<InitScene>c__Iterator1.MoveNext() [0x0006c] in D:\Dropbox\Dropbox\Unity\RunAndJump-master\Assets\Scenes\LevelHandler\LevelHandlerScene.cs:85
at UnityEngine.SetupCoroutine.InvokeMoveNext (IEnumerator enumerator, IntPtr returnValueAddress) [0x00028] in C:\buildslave\unity\build\Runtime\Export\Coroutines.cs:17
UnityEngine.MonoBehaviour:StartCoroutine_Auto_Internal(IEnumerator)
UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator) (at C:\buildslave\unity\build\artifacts\generated\common\runtime\MonoBehaviourBindings.gen.cs:62)
RunAndJump.<InitSequence>c__Iterator0:MoveNext() (at D:\Dropbox\Dropbox\Unity\RunAndJump-master\Assets\Scenes\LevelHandler\LevelHandlerScene.cs:77)
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr) (at C:\buildslave\unity\build\Runtime\Export\Coroutines.cs:17)
UnityEngine.MonoBehaviour:StartCoroutine_Auto_Internal(IEnumerator)
UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator) (at C:\buildslave\unity\build\artifacts\generated\common\runtime\MonoBehaviourBindings.gen.cs:62)
RunAndJump.LevelHandlerScene:Start() (at D:\Dropbox\Dropbox\Unity\RunAndJump-master\Assets\Scenes\LevelHandler\LevelHandlerScene.cs:58)
あるproblematiocシングルトンクラス:: ここでは、完全なデバッグメッセージです
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class Session : Singleton<Session> {
private LevelsPackage _levels;
private int _currentLevelId = 0;
private void Awake() {
_levels = Resources.Load<LevelsPackage>(LevelsPackage.ResourcePath);
Debug.Log(_levels);
}
public void PlayLevel(int id) {
_currentLevelId = id;
}
public void PlayNext() {
_currentLevelId++;
}
public LevelMetadata GetLevelMetadata() {
return _levels.metadataList[_currentLevelId -1];
}
public bool HasNext() {
return (_currentLevelId < _levels.metadataList.Count);
}
public int GetLevelId() {
return _currentLevelId;
}
public int GetTotalLevels() {
return _levels.metadataList.Count;
}
}
任意のアイデアを、これが唯一のビルドになぜ起こりますか? ありがとう!
P.S. LevelMetadataクラス:
これはファイルである:
using UnityEngine;
using System;
namespace RunAndJump {
[Serializable]
public class LevelMetadata {
public UnityEngine.Object scene;
[SerializeField]
private string levelName;
public string LevelName {
get { return (levelName == null || levelName == "") ? "Untitled" : levelName; }
set { levelName = value; }
}
public string SceneName {
get {
Debug.Log ("Scene Name : " + scene.name);
return scene.name;
}
}
}
}
がどのようにその問題だ。このクラスを知っていますか?実際にこれをデバッグしましたか? * D:\ Dropbox \ Dropbox \ Unity \ RunAndJump-master \ Assets \ Scripts \ Level \ LevelMetadata.cs:19 *はエラーの場所です。 *ヒント:* 'RunAndJump.LevelMetadata.get_SceneName' – t0mm13b
私の質問にコードをコピーしました。 – Fex