質問編集履歴

1

「試したこと」と「エラーメッセージ」を、文章ではなくスクリプト等のコピペにしました。

2023/01/19 04:17

投稿

ArironUnit
ArironUnit

スコア3

test CHANGED
File without changes
test CHANGED
@@ -65,25 +65,76 @@
65
65
  ```
66
66
 
67
67
  ### 試したこと
68
- 上記2件のサイトを参考に、
68
+ 上記2件のサイトを参考に、スクリプトを以下の様に変更しました。
69
69
  ```C#
70
+ using CI.QuickSave;
71
+ using UnityEngine;
72
+ using UnityEngine.UI;
73
+
74
+ public class ExampleSceneManagerController : MonoBehaviour
75
+ {
76
+ public InputField Input1;
77
+ public InputField Input2;
78
+ public InputField Input3;
79
+ public InputField Input4;
80
+ public InputField Input5;
81
+ public InputField Input6;
82
+ public InputField Input7;
83
+ public InputField Input8;
84
+ public InputField Content;
70
- // QuickSaveSettingsのインスタンスを作成
85
+ public QuickSaveSettings settings;
86
+
87
+ private void Start()
88
+ {
71
- QuickSaveSettings settings = new QuickSaveSettings();
89
+ QuickSaveSettings settings = new QuickSaveSettings();
72
- // 暗号化の方法
73
- settings.SecurityMode = SecurityMode.Aes;
90
+ settings.SecurityMode = SecurityMode.Aes;
74
- // Aesの暗号化キー
75
- settings.Password = "PassWord";
91
+ settings.Password = "PassWord";
76
- // 圧縮の方法
77
- settings.CompressionMode = CompressionMode.Gzip;
92
+ settings.CompressionMode = CompressionMode.Gzip;
93
+ }
94
+
95
+ public void Save()
96
+ {
97
+ QuickSaveWriter.Create("Inputs", settings)
98
+ .Write("Input1", Input1.text)
99
+ .Write("Input2", Input2.text)
100
+ .Write("Input3", Input3.text)
101
+ .Write("Input4", Input4.text)
102
+ .Commit();
103
+ Content.text = QuickSaveRaw.LoadString("Inputs.json");
104
+ }
105
+
106
+ public void Load()
107
+ {
108
+ QuickSaveReader.Create("Inputs", settings)
109
+ .Read<string>("Input1", (r) => { Input5.text = r; })
110
+ .Read<string>("Input2", (r) => { Input6.text = r; })
111
+ .Read<string>("Input3", (r) => { Input7.text = r; })
112
+ .Read<string>("Input4", (r) => { Input8.text = r; });
113
+ }
114
+ }
78
115
  ```
79
- をvoid Start()の中に入れ、かつ、QuickSaveWriter.CreateとQuickSaveReader.Createの引数を、
80
- ("Inputs")から("Inputs", settings)変更してみしたが、VisualStudio2022に、
81
- 「現在のコンテキストに 'settings' という名前は存在しません」と叱られてしまいました。
82
- そこで、上記スクリプトの16行目に、
83
- public QuickSaveSettings settings;
84
- と入れてみると、VisualStudio2022からは何も言われなくなったのですが、シーンを作動させても、
85
- Jsonファイルは暗号化も圧縮もされません。
86
- どうすればできるのか、ご教唆いただければ助かります。
116
+ Visual Studio 2022上ではエラーは現ませんがUnityで実行し、[Save]ボタン押すと
117
+ 何もセーブされない上、以下のエラーメッセージが出す。
118
+
119
+
120
+ ### 発生している問題・エラーメッセージ
121
+
122
+ ```
123
+ NullReferenceException: Object reference not set to an instance of an object
124
+ CI.QuickSave.QuickSaveBase.Load (System.Boolean rootMightNotExist) (at Assets/QuickSave/QuickSaveBase.cs:53)
125
+ CI.QuickSave.QuickSaveWriter.Create (System.String root, CI.QuickSave.QuickSaveSettings settings) (at Assets/QuickSave/QuickSaveWriter.cs:40)
126
+ ExampleSceneManagerController.Save () (at Assets/QuickSave/Example/ExampleSceneManagerController.cs:28)
127
+ UnityEngine.Events.InvokableCall.Invoke () (at <3be1a7ff939c43f181c0a10b5a0189ac>:0)
128
+ UnityEngine.Events.UnityEvent.Invoke () (at <3be1a7ff939c43f181c0a10b5a0189ac>:0)
129
+ UnityEngine.UI.Button.Press () (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/UI/Core/Button.cs:68)
130
+ UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/UI/Core/Button.cs:110)
131
+ UnityEngine.EventSystems.ExecuteEvents.Execute (UnityEngine.EventSystems.IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData) (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/EventSystem/ExecuteEvents.cs:50)
132
+ UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1] functor) (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/EventSystem/ExecuteEvents.cs:262)
133
+ UnityEngine.EventSystems.EventSystem:Update() (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/EventSystem/EventSystem.cs:385)
134
+
135
+ ```
136
+
137
+ どうすればよいのか、ご教唆いただければ助かります。
87
138
 
88
139
 
89
140
  ### 補足情報(FW/ツールのバージョンなど)