Lunatic-Works / Nova

Programmer-friendly framework for visual novels (VN) / text-based adventure games (AVG) on Unity
MIT License
602 stars 78 forks source link

我跟随wiki的建议完成了打包流程,但是打开游戏只有黑屏 #34

Closed Tuerbatu closed 2 years ago

Tuerbatu commented 2 years ago

我是在amd的显卡和cpu环境中进行的打包和运行,在编辑器状态下我可以正常使用,但是在导出后只有黑屏,在关闭的时候会弹出是否关闭的提示语,帮帮我

Tuerbatu commented 2 years ago

在字体生成时候有提示Special character:U+200B

Tuerbatu commented 2 years ago

ArgumentNullException: Value cannot be null. Parameter name: method at Newtonsoft.Json.Utilities.LateBoundReflectionDelegateFactory.CreateParameterizedConstructor (System.Reflection.MethodBase method) [0x00043] in /root/repo/Src/Newtonsoft.Json/Utilities/LateBoundReflectionDelegateFactory.cs:53 at Newtonsoft.Json.Serialization.JsonArrayContract.CreateWrapper (System.Object list) [0x000a0] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonArrayContract.cs:293 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateNewList (Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Serialization.JsonArrayContract contract, System.Boolean& createdFromNonDefaultCreator) [0x000bf] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:1263 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, System.Object existingValue, System.String id) [0x00023] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:859 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.ReadMetadataProperties (Newtonsoft.Json.JsonReader reader, System.Type& objectType, Newtonsoft.Json.Serialization.JsonContract& contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue, System.Object& newValue, System.String& id) [0x001ba] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:763 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x000bc] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:465 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x0006d] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:309 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateDictionary (System.Collections.IDictionary dictionary, Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Serialization.JsonDictionaryContract contract, Newtonsoft.Json.Serialization.JsonProperty containerProperty, System.String id) [0x0029c] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:1453 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x002b7] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:560 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x0006d] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:309 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue (Newtonsoft.Json.Serialization.JsonProperty property, Newtonsoft.Json.JsonConverter propertyConverter, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerProperty, Newtonsoft.Json.JsonReader reader, System.Object target) [0x0005c] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:1052 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject (System.Object newObject, Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Serialization.JsonObjectContract contract, Newtonsoft.Json.Serialization.JsonProperty member, System.String id) [0x00280] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:2433 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x00161] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:502 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x0006d] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:309 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize (Newtonsoft.Json.JsonReader reader, System.Type objectType, System.Boolean checkAdditionalContent) [0x000db] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:202 at Newtonsoft.Json.JsonSerializer.DeserializeInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType) [0x00046] in /root/repo/Src/Newtonsoft.Json/JsonSerializer.cs:904 at Newtonsoft.Json.JsonSerializer.Deserialize (Newtonsoft.Json.JsonReader reader, System.Type objectType) [0x00000] in /root/repo/Src/Newtonsoft.Json/JsonSerializer.cs:883 at Newtonsoft.Json.JsonSerializer.Deserialize[T] (Newtonsoft.Json.JsonReader reader) [0x00000] in /root/repo/Src/Newtonsoft.Json/JsonSerializer.cs:870 at Nova.CheckpointSerializer.DeserializeRecord[T] (System.Int64 offset, System.Boolean compress) [0x00033] in E:\UnityHome\NovaClone\Assets\Nova\Sources\Core\Restoration\CheckpointSerializer.cs:298 UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object) UnityEngine.DebugLogHandler:LogException(Exception, Object) UnityEngine.Logger:LogException(Exception, Object) UnityEngine.Debug:LogException(Exception) Nova.CheckpointSerializer:DeserializeRecord(Int64, Boolean) (at E:\UnityHome\NovaClone\Assets\Nova\Sources\Core\Restoration\CheckpointSerializer.cs:311) Nova.CheckpointManager:InitGlobalSave() (at E:\UnityHome\NovaClone\Assets\Nova\Sources\Core\Restoration\CheckpointManager.cs:33) Nova.CheckpointManager:Init() (at E:\UnityHome\NovaClone\Assets\Nova\Sources\Core\Restoration\CheckpointManager.cs:74) Nova.CheckpointManager:Start() (at E:\UnityHome\NovaClone\Assets\Nova\Sources\Core\Restoration\CheckpointManager.cs:97)

(Filename: E:/UnityHome/NovaClone/Assets/Nova/Sources/Core/Restoration/CheckpointSerializer.cs Line: 311)

CheckpointCorruptedException: Serialization failed @20: Value cannot be null. Parameter name: method at Nova.CheckpointSerializer.DeserializeRecord[T] (System.Int64 offset, System.Boolean compress) [0x000c0] in E:\UnityHome\NovaClone\Assets\Nova\Sources\Core\Restoration\CheckpointSerializer.cs:312 at Nova.CheckpointManager.InitGlobalSave () [0x00001] in E:\UnityHome\NovaClone\Assets\Nova\Sources\Core\Restoration\CheckpointManager.cs:33 at Nova.CheckpointManager.Init () [0x00089] in E:\UnityHome\NovaClone\Assets\Nova\Sources\Core\Restoration\CheckpointManager.cs:74 at Nova.CheckpointManager.Start () [0x00001] in E:\UnityHome\NovaClone\Assets\Nova\Sources\Core\Restoration\CheckpointManager.cs:97

(Filename: E:/UnityHome/NovaClone/Assets/Nova/Sources/Core/Restoration/CheckpointSerializer.cs Line: 312)

IOException: Sharing violation on path C:\Users\Administrator\AppData\LocalLow\Lunatic Works\Nova\Save\global.nsav at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.Boolean anonymous, System.IO.FileOptions options) [0x0019e] in <3d8c95b1cc2a417ea002d4c09d69400a>:0 at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.Boolean isAsync, System.Boolean anonymous) [0x00000] in <3d8c95b1cc2a417ea002d4c09d69400a>:0 at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access) [0x00000] in <3d8c95b1cc2a417ea002d4c09d69400a>:0 at (wrapper remoting-invoke-with-check) System.IO.FileStream..ctor(string,System.IO.FileMode,System.IO.FileAccess) at Nova.CheckpointSerializer.Open () [0x00001] in E:\UnityHome\NovaClone\Assets\Nova\Sources\Core\Restoration\CheckpointSerializer.cs:112 at Nova.CheckpointManager.Init () [0x0007d] in E:\UnityHome\NovaClone\Assets\Nova\Sources\Core\Restoration\CheckpointManager.cs:73 at Nova.ImageGalleryController.Start () [0x00008] in E:\UnityHome\NovaClone\Assets\Nova\Sources\Scripts\UI\Views\ImageGalleryController.cs:63

(Filename: E:/UnityHome/NovaClone/Assets/Nova/Sources/Core/Restoration/CheckpointSerializer.cs Line: 112)

woct0rdho commented 2 years ago

你的project settings里的managed stripping level( https://docs.unity3d.com/Manual/ManagedCodeStripping.html )设的是什么?一般可以设成low,如果设成medium或以上,会丢掉解析JSON需要的一些代码

woct0rdho commented 2 years ago

emmm你现在还有这个问题吗

我们最近又做了一些测试,看起来managed stripping level必须设成disabled,如果设成low在某些情况下也会出问题

Wiki里的游戏打包已经更新了

Tuerbatu commented 2 years ago

我解决了这个问题,但是不是用你这种方式。我调试了导出程序发现是存档文件解析的时候出现问题,于是我暂时屏蔽了它。感谢提供的方法,我回头会试试的。