gg.easy.airship 0.1.2144 → 0.1.2145

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/Editor/LuauPluginUpdateCheck.cs +1 -1
  2. package/Editor/TypescriptServices/TypescriptServices.cs +5 -1
  3. package/Runtime/Code/Airship/Resources/Scripts/MaterialColorURP.cs +11 -1
  4. package/Runtime/Code/Auth/AuthManager.cs +4 -0
  5. package/Runtime/Code/Bootstrap/ClientBundleLoader.cs +1 -1
  6. package/Runtime/Code/Bundles/AirshipLuauDebugger.cs +0 -5
  7. package/Runtime/Code/Bundles/SystemRoot.cs +1 -1
  8. package/Runtime/Code/GoogleSignIn/GoogleSignIn.asmdef +15 -2
  9. package/Runtime/Code/GoogleSignIn/Plugins/iOS/GoogleSignIn.h.meta +13 -12
  10. package/Runtime/Code/GoogleSignIn/Plugins/iOS/GoogleSignIn.mm.meta +13 -12
  11. package/Runtime/Code/GoogleSignIn/Plugins/iOS/GoogleSignInAppController.h.meta +13 -12
  12. package/Runtime/Code/GoogleSignIn/Plugins/iOS/GoogleSignInAppController.mm.meta +13 -12
  13. package/Runtime/Code/Health/AirshipProfileExporter.cs +1 -1
  14. package/Runtime/Code/Luau/AirshipComponent.cs +33 -8
  15. package/Runtime/Code/Luau/LuauCoreCallbacks.cs +60 -56
  16. package/Runtime/Code/Luau/LuauCoreReflection.cs +10 -8
  17. package/Runtime/Code/Luau/LuauCoreUtilities.cs +5 -5
  18. package/Runtime/Code/Luau/LuauMetadata.cs +2 -0
  19. package/Runtime/Code/Luau/LuauPlugin.cs +38 -31
  20. package/Runtime/Code/Luau/ReflectionList.cs +28 -0
  21. package/Runtime/Code/Luau/RendererAPI.cs +11 -3
  22. package/Runtime/Code/Luau/ThreadManager.cs +0 -11
  23. package/Runtime/Code/Network/ServerConsole.cs +9 -2
  24. package/Runtime/Code/Player/Character/Animation/ClipReplacer/AnimatorClipReplacer.cs +16 -26
  25. package/Runtime/Code/Player/Character/MovementSystems/Character/CharacterMovement.cs +183 -97
  26. package/Runtime/Code/Player/Character/MovementSystems/Character/CharacterMovementSettings.cs +16 -6
  27. package/Runtime/Code/Player/PlayerManagerBridge.cs +1 -1
  28. package/Runtime/Code/VoiceChat/AirshipUniVoiceNetwork.cs +1 -1
  29. package/Runtime/DevConsole/Runtime/DevConsoleMono.cs +2 -0
  30. package/Runtime/Plugins/Android/libLuauPlugin.so +0 -0
  31. package/Runtime/Plugins/Linux/libLuauPlugin.so +0 -0
  32. package/Runtime/Plugins/Mac/LuauPlugin.bundle/Contents/MacOS/LuauPlugin +0 -0
  33. package/Runtime/Plugins/Windows/x64/LuauPlugin.dll +0 -0
  34. package/Runtime/Plugins/Windows/x64/LuauPlugin.pdb +0 -0
  35. package/Runtime/Plugins/iOS/LuauPluginIos.a +0 -0
  36. package/ThirdParty/Mirror/Core/NetworkClient.cs +1 -1
  37. package/ThirdParty/Mirror/Core/NetworkManager.cs +2 -2
  38. package/package.json +1 -1
@@ -57,7 +57,7 @@ public static class LuauPluginUpdateCheck {
57
57
  if (lastHash != "") {
58
58
  // Check if user wants to restart
59
59
  var acceptsRestart = EditorUtility.DisplayDialog("Luau Plugin Updated",
60
- "The Luau plugin has updated. Restart Unity to apply changes. We're sorry for this..", "Quit", "Cancel");
60
+ "Airship Luau plugin has updated. Restart Unity to apply changes.", "Quit", "Cancel");
61
61
  if (acceptsRestart) {
62
62
  // Verify any unsaved changes are saved
63
63
  var confirmedSaveState = EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo();
@@ -163,7 +163,11 @@ namespace Airship.Editor {
163
163
  private static IEnumerator StartTypescriptRuntime() {
164
164
  TypescriptProjectsService.ReloadProject();
165
165
 
166
- // if (!EditorIntegrationsConfig.instance.typescriptAutostartCompiler) yield break;
166
+ // Wait for updates
167
+ if (AirshipUpdateService.IsUpdatingAirship || AirshipPackagesWindow.IsModifyingPackages) {
168
+ yield return new WaitUntil(() =>
169
+ !AirshipPackagesWindow.IsModifyingPackages && !AirshipUpdateService.IsUpdatingAirship);
170
+ }
167
171
 
168
172
  if (TypescriptCompilationService.IsWatchModeRunning) {
169
173
  TypescriptCompilationService.StopCompilerServices(true);
@@ -62,7 +62,17 @@ public class MaterialColorURP : MonoBehaviour {
62
62
 
63
63
  // Called when the color is changed in the inspector
64
64
  private void OnValidate() {
65
- DoUpdate();
65
+ #if UNITY_EDITOR
66
+ if (Application.isPlaying) {
67
+ DoUpdate();
68
+ } else {
69
+ EditorApplication.delayCall += () => {
70
+ if (this != null) DoUpdate();
71
+ };
72
+ }
73
+ #else
74
+ DoUpdate();
75
+ #endif
66
76
  }
67
77
 
68
78
  private void OnDestroy() {
@@ -5,7 +5,9 @@ using Cdm.Authentication.Browser;
5
5
  using Cdm.Authentication.Clients;
6
6
  using Cdm.Authentication.OAuth2;
7
7
  using Code.Http.Internal;
8
+ #if UNITY_ANDROID
8
9
  using Google;
10
+ #endif
9
11
  using JetBrains.Annotations;
10
12
  using Proyecto26;
11
13
  using RSG;
@@ -112,6 +114,7 @@ public class AuthManager {
112
114
  scope = "openid email profile",
113
115
  });
114
116
 
117
+ #if UNITY_ANDROID
115
118
  GoogleSignIn.Configuration = new GoogleSignInConfiguration() {
116
119
  RequestEmail = true,
117
120
  RequestProfile = true,
@@ -121,6 +124,7 @@ public class AuthManager {
121
124
  ClientSecret = clientSecret,
122
125
  #endif
123
126
  };
127
+ #endif
124
128
 
125
129
  #if AIRSHIP_ANDROID_DEBUG
126
130
  GoogleSignIn.DefaultInstance.EnableDebugLogging(true);
@@ -252,7 +252,7 @@ namespace Code.Bootstrap {
252
252
 
253
253
  this.codeReceiveSt.Restart();
254
254
 
255
- print("Requesting scripts from server..");
255
+ print("[Airship] Requesting scripts from server...");
256
256
  NetworkClient.Send(new RequestScriptsMessage());
257
257
  }
258
258
 
@@ -68,11 +68,6 @@ public class AirshipLuauDebugger : NetworkBehaviour {
68
68
  var n = "(Destroyed)";
69
69
  if (unityObj != null) {
70
70
  n = unityObj.name;
71
- } else {
72
- var cachedName = ThreadDataManager.GetObjectReferenceName_TEMP_DEBUG(instanceId);
73
- if (cachedName != null) {
74
- n = cachedName + " (Destroyed)";
75
- }
76
71
  }
77
72
  var objName = $"[{t.Name}] {n}";
78
73
  if (!countByName.TryAdd(objName, 1)) {
@@ -324,7 +324,7 @@ public class SystemRoot : Singleton<SystemRoot> {
324
324
 
325
325
  #if AIRSHIP_PLAYER || true
326
326
  try {
327
- Debug.Log("Scanning network prefabs...");
327
+ // Debug.Log("Scanning network prefabs...");
328
328
  Debug.Log($"Listing {NetworkClient.prefabs.Count} network prefabs:");
329
329
  int i = 1;
330
330
  foreach (var pair in NetworkClient.prefabs) {
@@ -1,3 +1,16 @@
1
1
  {
2
- "name": "GoogleSignin"
3
- }
2
+ "name": "GoogleSignin",
3
+ "rootNamespace": "",
4
+ "references": [],
5
+ "includePlatforms": [],
6
+ "excludePlatforms": [
7
+ "iOS"
8
+ ],
9
+ "allowUnsafeCode": false,
10
+ "overrideReferences": false,
11
+ "precompiledReferences": [],
12
+ "autoReferenced": true,
13
+ "defineConstraints": [],
14
+ "versionDefines": [],
15
+ "noEngineReferences": false
16
+ }
@@ -5,7 +5,7 @@ labels:
5
5
  - gvh_version-1.0.4
6
6
  PluginImporter:
7
7
  externalObjects: {}
8
- serializedVersion: 2
8
+ serializedVersion: 3
9
9
  iconMap: {}
10
10
  executionOrder: {}
11
11
  defineConstraints: []
@@ -14,21 +14,22 @@ PluginImporter:
14
14
  isExplicitlyReferenced: 0
15
15
  validateReferences: 1
16
16
  platformData:
17
- - first:
18
- Any:
19
- second:
17
+ Any:
20
18
  enabled: 0
21
- settings: {}
22
- - first:
23
- Editor: Editor
24
- second:
19
+ settings:
20
+ Exclude Android: 1
21
+ Exclude Editor: 1
22
+ Exclude Linux64: 1
23
+ Exclude OSXUniversal: 1
24
+ Exclude Win: 1
25
+ Exclude Win64: 1
26
+ Exclude iOS: 1
27
+ Editor:
25
28
  enabled: 0
26
29
  settings:
27
30
  DefaultValueInitialized: true
28
- - first:
29
- iPhone: iOS
30
- second:
31
- enabled: 1
31
+ iOS:
32
+ enabled: 0
32
33
  settings: {}
33
34
  userData:
34
35
  assetBundleName:
@@ -5,7 +5,7 @@ labels:
5
5
  - gvh_version-1.0.4
6
6
  PluginImporter:
7
7
  externalObjects: {}
8
- serializedVersion: 2
8
+ serializedVersion: 3
9
9
  iconMap: {}
10
10
  executionOrder: {}
11
11
  defineConstraints: []
@@ -14,21 +14,22 @@ PluginImporter:
14
14
  isExplicitlyReferenced: 0
15
15
  validateReferences: 1
16
16
  platformData:
17
- - first:
18
- Any:
19
- second:
17
+ Any:
20
18
  enabled: 0
21
- settings: {}
22
- - first:
23
- Editor: Editor
24
- second:
19
+ settings:
20
+ Exclude Android: 1
21
+ Exclude Editor: 1
22
+ Exclude Linux64: 1
23
+ Exclude OSXUniversal: 1
24
+ Exclude Win: 1
25
+ Exclude Win64: 1
26
+ Exclude iOS: 1
27
+ Editor:
25
28
  enabled: 0
26
29
  settings:
27
30
  DefaultValueInitialized: true
28
- - first:
29
- iPhone: iOS
30
- second:
31
- enabled: 1
31
+ iOS:
32
+ enabled: 0
32
33
  settings: {}
33
34
  userData:
34
35
  assetBundleName:
@@ -5,7 +5,7 @@ labels:
5
5
  - gvh_version-1.0.4
6
6
  PluginImporter:
7
7
  externalObjects: {}
8
- serializedVersion: 2
8
+ serializedVersion: 3
9
9
  iconMap: {}
10
10
  executionOrder: {}
11
11
  defineConstraints: []
@@ -14,21 +14,22 @@ PluginImporter:
14
14
  isExplicitlyReferenced: 0
15
15
  validateReferences: 1
16
16
  platformData:
17
- - first:
18
- Any:
19
- second:
17
+ Any:
20
18
  enabled: 0
21
- settings: {}
22
- - first:
23
- Editor: Editor
24
- second:
19
+ settings:
20
+ Exclude Android: 1
21
+ Exclude Editor: 1
22
+ Exclude Linux64: 1
23
+ Exclude OSXUniversal: 1
24
+ Exclude Win: 1
25
+ Exclude Win64: 1
26
+ Exclude iOS: 1
27
+ Editor:
25
28
  enabled: 0
26
29
  settings:
27
30
  DefaultValueInitialized: true
28
- - first:
29
- iPhone: iOS
30
- second:
31
- enabled: 1
31
+ iOS:
32
+ enabled: 0
32
33
  settings: {}
33
34
  userData:
34
35
  assetBundleName:
@@ -5,7 +5,7 @@ labels:
5
5
  - gvh_version-1.0.4
6
6
  PluginImporter:
7
7
  externalObjects: {}
8
- serializedVersion: 2
8
+ serializedVersion: 3
9
9
  iconMap: {}
10
10
  executionOrder: {}
11
11
  defineConstraints: []
@@ -14,21 +14,22 @@ PluginImporter:
14
14
  isExplicitlyReferenced: 0
15
15
  validateReferences: 1
16
16
  platformData:
17
- - first:
18
- Any:
19
- second:
17
+ Any:
20
18
  enabled: 0
21
- settings: {}
22
- - first:
23
- Editor: Editor
24
- second:
19
+ settings:
20
+ Exclude Android: 1
21
+ Exclude Editor: 1
22
+ Exclude Linux64: 1
23
+ Exclude OSXUniversal: 1
24
+ Exclude Win: 1
25
+ Exclude Win64: 1
26
+ Exclude iOS: 1
27
+ Editor:
25
28
  enabled: 0
26
29
  settings:
27
30
  DefaultValueInitialized: true
28
- - first:
29
- iPhone: iOS
30
- second:
31
- enabled: 1
31
+ iOS:
32
+ enabled: 0
32
33
  settings: {}
33
34
  userData:
34
35
  assetBundleName:
@@ -184,7 +184,7 @@ namespace Code.Health
184
184
  Profiler.logFile = logPath;
185
185
  Profiler.enableBinaryLog = true;
186
186
 
187
- Debug.Log($"Starting profiler for {durationSecs} seconds.");
187
+ Debug.Log($"Starting profiler for {durationSecs} seconds. Callstacks = {enableCallstacks}");
188
188
  Profiler.enabled = true;
189
189
  Profiler.enableAllocationCallstacks = enableCallstacks;
190
190
  StopProfilingAfterDelay(logPath, fileName, durationSecs, profileInitiator);
@@ -61,6 +61,9 @@ public class AirshipComponent : MonoBehaviour {
61
61
  internal static bool UsePostCompileReconciliation { get; set; } = true;
62
62
  private const bool ElevateToProtectedWithinCoreScene = true;
63
63
 
64
+ private static readonly List<GCHandle> InitGcHandles = new();
65
+ private static readonly List<IntPtr> InitStringPtrs = new();
66
+
64
67
  public static LuauScript.AwakeData QueuedAwakeData = null;
65
68
  public static readonly Dictionary<int, string> ComponentIdToScriptName = new();
66
69
 
@@ -110,6 +113,8 @@ public class AirshipComponent : MonoBehaviour {
110
113
  _validatedSceneInGameConfig = false;
111
114
  QueuedAwakeData = null;
112
115
  ComponentIdToScriptName.Clear();
116
+ InitGcHandles.Clear();
117
+ InitStringPtrs.Clear();
113
118
  }
114
119
 
115
120
  public static AirshipComponent Create(GameObject go, string scriptPath, LuauContext context) {
@@ -226,16 +231,17 @@ public class AirshipComponent : MonoBehaviour {
226
231
 
227
232
  InitAirshipComponent();
228
233
  }
229
-
230
- private void InitAirshipComponent() {
231
- InitializeAirshipReference();
232
234
 
235
+ private unsafe void InitAirshipComponent() {
236
+ InitializeAirshipReference();
237
+
233
238
  // Ensure all AirshipComponent dependencies are ready first
234
239
  foreach (var dependency in GetDependencies()) {
235
240
  dependency.Init();
236
241
  }
237
242
 
238
- var properties = new List<LuauMetadataProperty>(metadata.properties);
243
+ var properties = metadata.properties;
244
+ var propertiesCopied = false;
239
245
 
240
246
  // Ensure allowed objects
241
247
  for (var i = metadata.properties.Count - 1; i >= 0; i--) {
@@ -245,6 +251,11 @@ public class AirshipComponent : MonoBehaviour {
245
251
  case "object": {
246
252
  if (!ReflectionList.IsAllowedFromString(property.objectType, context)) {
247
253
  Debug.LogError($"[Airship] Skipping AirshipBehaviour property \"{property.name}\": Type \"{property.objectType}\" is not allowed");
254
+ if (!propertiesCopied) {
255
+ // As an optimization, we use the original metadata.properties list until we need to modify it at all, such as here:
256
+ propertiesCopied = true;
257
+ properties = new List<LuauMetadataProperty>(metadata.properties);
258
+ }
248
259
  properties.RemoveAt(i);
249
260
  }
250
261
 
@@ -253,16 +264,27 @@ public class AirshipComponent : MonoBehaviour {
253
264
  }
254
265
  }
255
266
 
256
- var propertyDtos = new LuauMetadataPropertyMarshalDto[properties.Count];
257
- var gcHandles = new List<GCHandle>();
258
- var stringPtrs = new List<IntPtr>();
267
+ var propertyDtos = properties.Count <= 1024 ?
268
+ stackalloc LuauMetadataPropertyMarshalDto[properties.Count] :
269
+ new LuauMetadataPropertyMarshalDto[properties.Count];
270
+
259
271
  for (var i = 0; i < properties.Count; i++) {
260
272
  var property = properties[i];
261
- property.AsStructDto(thread, gcHandles, stringPtrs, out var dto);
273
+ property.AsStructDto(thread, InitGcHandles, InitStringPtrs, out var dto);
262
274
  propertyDtos[i] = dto;
263
275
  }
264
276
 
265
277
  LuauPlugin.LuauInitializeAirshipComponent(context, thread, AirshipBehaviourRootV2.GetId(gameObject), _airshipComponentId, propertyDtos);
278
+
279
+ // Free handles:
280
+ foreach (var handle in InitGcHandles) {
281
+ handle.Free();
282
+ }
283
+ foreach (var strPtr in InitStringPtrs) {
284
+ Marshal.FreeCoTaskMem(strPtr);
285
+ }
286
+ InitGcHandles.Clear();
287
+ InitStringPtrs.Clear();
266
288
  }
267
289
 
268
290
  private void Start() {
@@ -470,6 +492,9 @@ public class AirshipComponent : MonoBehaviour {
470
492
  }
471
493
 
472
494
  private void OnValidate() {
495
+ if (Application.isPlaying) {
496
+ return;
497
+ }
473
498
  Validate();
474
499
  }
475
500