diff --git a/CHANGELOG.md b/CHANGELOG.md index 499bf44e..d53c8ca1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2022.3.0-alpha1 + +* Added support for global flutter unity controller that outlives the UnityWidget + ## 2022.2.0 * Enable AndroidView due to native view improvement in flutter 3.3.0 diff --git a/android/build.gradle b/android/build.gradle index 8a61bc31..a15c6920 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -66,6 +66,9 @@ dependencies { compileOnly rootProject.findProject(":flutter_plugin_android_lifecycle") + implementation "io.reactivex.rxjava3:rxjava:3.1.4" + implementation 'io.reactivex.rxjava3:rxandroid:3.0.0' + // FOR DEV ONLY // implementation(name: 'flutter', ext:'jar') } diff --git a/android/src/main/kotlin/com/xraph/plugin/flutter_unity_widget/DataStreamHandler.kt b/android/src/main/kotlin/com/xraph/plugin/flutter_unity_widget/DataStreamHandler.kt new file mode 100644 index 00000000..c8879e42 --- /dev/null +++ b/android/src/main/kotlin/com/xraph/plugin/flutter_unity_widget/DataStreamHandler.kt @@ -0,0 +1,48 @@ +package com.xraph.plugin.flutter_unity_widget + +import io.flutter.plugin.common.EventChannel +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers +import io.reactivex.rxjava3.subjects.PublishSubject +import org.json.JSONObject + +class DataStreamEventNotifier { + companion object { + val notifier: PublishSubject = PublishSubject.create() + } +} + +data class DataStreamEvent(val eventType: String, val data: Any) { + fun toMap(): Map { + return mapOf("eventType" to eventType, "data" to data) + } + + fun toJsonString(): String { + return JSONObject(toMap()).toString() + } +} + +enum class DataStreamEventTypes { + OnUnityViewCreated, + OnUnityPlayerReInitialize, + OnViewReattached, + OnUnityPlayerCreated, + OnUnityPlayerUnloaded, + OnUnityPlayerQuited, + OnUnitySceneLoaded, + OnUnityMessage, + OnViewAttached, + OnViewDetached, +} + +class DataStreamHandler: EventChannel.StreamHandler { + override fun onListen(arguments: Any?, events: EventChannel.EventSink) { + DataStreamEventNotifier.notifier.subscribeOn(AndroidSchedulers.mainThread()) + .observeOn(AndroidSchedulers.mainThread()).subscribe { + events.success(it.toMap()) + } + } + + override fun onCancel(arguments: Any?) { + DataStreamEventNotifier.notifier.unsubscribeOn(AndroidSchedulers.mainThread()) + } +} \ No newline at end of file diff --git a/android/src/main/kotlin/com/xraph/plugin/flutter_unity_widget/FlutterUnityWidgetBuilder.kt b/android/src/main/kotlin/com/xraph/plugin/flutter_unity_widget/FlutterUnityWidgetBuilder.kt index 7deee3bf..5175b62f 100755 --- a/android/src/main/kotlin/com/xraph/plugin/flutter_unity_widget/FlutterUnityWidgetBuilder.kt +++ b/android/src/main/kotlin/com/xraph/plugin/flutter_unity_widget/FlutterUnityWidgetBuilder.kt @@ -9,14 +9,12 @@ class FlutterUnityWidgetBuilder : FlutterUnityWidgetOptionsSink { fun build( id: Int, context: Context?, - binaryMessenger: BinaryMessenger, lifecycle: LifecycleProvider ): FlutterUnityWidgetController { UnityPlayerUtils.options = options val controller = FlutterUnityWidgetController( id, context, - binaryMessenger, lifecycle ) controller.bootstrap() diff --git a/android/src/main/kotlin/com/xraph/plugin/flutter_unity_widget/FlutterUnityWidgetController.kt b/android/src/main/kotlin/com/xraph/plugin/flutter_unity_widget/FlutterUnityWidgetController.kt index a54132f8..f93ac2bb 100755 --- a/android/src/main/kotlin/com/xraph/plugin/flutter_unity_widget/FlutterUnityWidgetController.kt +++ b/android/src/main/kotlin/com/xraph/plugin/flutter_unity_widget/FlutterUnityWidgetController.kt @@ -4,7 +4,6 @@ import android.annotation.SuppressLint import android.app.Activity import android.content.Context import android.content.ContextWrapper -import android.content.Intent import android.graphics.Color import android.os.Build import android.os.Handler @@ -17,10 +16,6 @@ import android.widget.FrameLayout import androidx.lifecycle.DefaultLifecycleObserver import androidx.lifecycle.LifecycleOwner import com.unity3d.player.IUnityPlayerLifecycleEvents -import io.flutter.plugin.common.BinaryMessenger -import io.flutter.plugin.common.MethodCall -import io.flutter.plugin.common.MethodChannel -import io.flutter.plugin.common.MethodChannel.MethodCallHandler import io.flutter.plugin.platform.PlatformView @@ -28,13 +23,10 @@ import io.flutter.plugin.platform.PlatformView class FlutterUnityWidgetController( private val id: Int, private val context: Context?, - binaryMessenger: BinaryMessenger, lifecycleProvider: LifecycleProvider -) : PlatformView, +): PlatformView, DefaultLifecycleObserver, FlutterUnityWidgetOptionsSink, - MethodCallHandler, - UnityEventListener, IUnityPlayerLifecycleEvents { //#region Members @@ -42,16 +34,14 @@ class FlutterUnityWidgetController( private var lifecycleProvider: LifecycleProvider = lifecycleProvider private var options: FlutterUnityWidgetOptions = FlutterUnityWidgetOptions() - private val methodChannel: MethodChannel - - private var methodChannelResult: MethodChannel.Result? = null private var view: FrameLayout private var disposed: Boolean = false private var attached: Boolean = false private var loadedCallbackPending: Boolean = false + var viewId: String = "unity-id-$id" init { - UnityPlayerUtils.controllers.add(this) + UnityPlayerUtils.controllers[viewId] = this var tempContext = UnityPlayerUtils.activity as Context if (context != null) tempContext = context @@ -59,13 +49,6 @@ class FlutterUnityWidgetController( view = FrameLayout(tempContext) view.setBackgroundColor(Color.TRANSPARENT) - // setup method channel - methodChannel = MethodChannel(binaryMessenger, "plugin.xraph.com/unity_view_$id") - methodChannel.setMethodCallHandler(this) - - // Set unity listener - UnityPlayerUtils.addUnityEventListener(this) - if(UnityPlayerUtils.unityPlayer == null) { createPlayer() refocusUnity() @@ -90,7 +73,6 @@ class FlutterUnityWidgetController( override fun dispose() { Log.d(LOG_TAG, "this controller disposed") - UnityPlayerUtils.removeUnityEventListener(this) if (disposed) { return } @@ -104,77 +86,6 @@ class FlutterUnityWidgetController( disposed = true } - override fun onMethodCall(methodCall: MethodCall, result: MethodChannel.Result) { - when (methodCall.method) { - "unity#waitForUnity" -> { - if (UnityPlayerUtils.unityPlayer != null) { - result.success(null) - return - } - result.success(null) - methodChannelResult = result - } - "unity#createPlayer" -> { - invalidateFrameIfNeeded() - this.createPlayer() - refocusUnity() - result.success(null) - } - "unity#isReady" -> { - result.success(UnityPlayerUtils.unityPlayer != null) - } - "unity#isLoaded" -> { - result.success(UnityPlayerUtils.unityLoaded) - } - "unity#isPaused" -> { - result.success(UnityPlayerUtils.unityPaused) - } - "unity#postMessage" -> { - invalidateFrameIfNeeded() - val gameObject: String = methodCall.argument("gameObject").toString() - val methodName: String = methodCall.argument("methodName").toString() - val message: String = methodCall.argument("message").toString() - UnityPlayerUtils.postMessage(gameObject, methodName, message) - result.success(true) - } - "unity#pausePlayer" -> { - invalidateFrameIfNeeded() - UnityPlayerUtils.pause() - result.success(true) - } - "unity#openInNativeProcess" -> { - openNativeUnity() - result.success(true) - } - "unity#resumePlayer" -> { - invalidateFrameIfNeeded() - UnityPlayerUtils.resume() - result.success(true) - } - "unity#unloadPlayer" -> { - invalidateFrameIfNeeded() - UnityPlayerUtils.unload() - result.success(true) - } - "unity#dispose" -> { - // destroyUnityViewIfNecessary() - // if () - // dispose() - result.success(null) - } - "unity#silentQuitPlayer" -> { - UnityPlayerUtils.quitPlayer() - result.success(true) - } - "unity#quitPlayer" -> { - if (UnityPlayerUtils.unityPlayer != null) { - UnityPlayerUtils.unityPlayer!!.destroy() - } - result.success(true) - } - else -> result.notImplemented() - } - } //#endregion //#region Options Override @@ -196,33 +107,27 @@ class FlutterUnityWidgetController( //#endregion //#region Unity Events - override fun onMessage(message: String) { - Handler(Looper.getMainLooper()).post { - methodChannel.invokeMethod("events#onUnityMessage", message) - } - } - - override fun onSceneLoaded(name: String, buildIndex: Int, isLoaded: Boolean, isValid: Boolean) { - Handler(Looper.getMainLooper()).post { - val payload: MutableMap = HashMap() - payload["name"] = name - payload["buildIndex"] = buildIndex - payload["isLoaded"] = isLoaded - payload["isValid"] = isValid - methodChannel.invokeMethod("events#onUnitySceneLoaded", payload) - } - } override fun onUnityPlayerUnloaded() { - Log.d(LOG_TAG, "onUnityPlayerUnloaded") + Log.d(FlutterUnityWidgetPlugin.LOG_TAG, "onUnityPlayerUnloaded") UnityPlayerUtils.unityLoaded = false Handler(Looper.getMainLooper()).post { - methodChannel.invokeMethod("events#onUnityUnloaded", true) + DataStreamEventNotifier.notifier.onNext( + DataStreamEvent( + DataStreamEventTypes.OnUnityPlayerUnloaded.name, + true, + ) + ) } } override fun onUnityPlayerQuitted() { - if (disposed) return + DataStreamEventNotifier.notifier.onNext( + DataStreamEvent( + DataStreamEventTypes.OnUnityPlayerQuited.name, + true, + ) + ) } //#endregion @@ -265,24 +170,13 @@ class FlutterUnityWidgetController( this.lifecycleProvider.getLifecycle().addObserver(this) } - private fun openNativeUnity() { - val activity = getActivity(null) - if (activity != null) { - val intent = Intent(getActivity(null)!!.applicationContext, OverrideUnityActivity::class.java) - intent.flags = Intent.FLAG_ACTIVITY_REORDER_TO_FRONT - intent.putExtra("fullscreen", options.fullscreenEnabled) - intent.putExtra("flutterActivity", activity.javaClass) - activity.startActivityForResult(intent, 1) - } - } - private fun destroyUnityViewIfNecessary() { if (options.unloadOnDispose) { UnityPlayerUtils.unload() } } - private fun createPlayer() { + fun createPlayer() { try { if (UnityPlayerUtils.activity != null) { UnityPlayerUtils.createUnityPlayer( this, object : OnCreateUnityViewCallback { @@ -290,19 +184,21 @@ class FlutterUnityWidgetController( // attach unity to controller attachToView() - if (methodChannelResult != null) { - methodChannelResult!!.success(true) - methodChannelResult = null - } + DataStreamEventNotifier.notifier.onNext( + DataStreamEvent( + DataStreamEventTypes.OnUnityViewCreated.name, + viewId, + ) + ) } }) } } catch (e: Exception) { - if (methodChannelResult != null) { - methodChannelResult!!.error("FLUTTER_UNITY_WIDGET", e.message, e) - methodChannelResult!!.success(false) - methodChannelResult = null - } +// if (methodChannelResult != null) { +// methodChannelResult!!.error("FLUTTER_UNITY_WIDGET", e.message, e) +// methodChannelResult!!.success(false) +// methodChannelResult = null +// } } } @@ -324,9 +220,13 @@ class FlutterUnityWidgetController( } private fun detachView() { - UnityPlayerUtils.controllers.remove(this) - methodChannel.setMethodCallHandler(null) - UnityPlayerUtils.removePlayer(this) + try { + if (!UnityPlayerUtils.controllers.containsValue(this)) return + UnityPlayerUtils.controllers.remove(viewId) + UnityPlayerUtils.removePlayer(this) + } catch (e: Exception) { + Log.e(LOG_TAG, e.message, e) + } } @@ -345,11 +245,29 @@ class FlutterUnityWidgetController( // add unity to view UnityPlayerUtils.addUnityViewToGroup(view) UnityPlayerUtils.focus() + + if (UnityPlayerUtils.controllers.size >= 2) { + for (controller in UnityPlayerUtils.controllers.values) { + if (controller.attached) { + controller.detach() + } + } + } attached = true + + + Handler(Looper.getMainLooper()).post { + DataStreamEventNotifier.notifier.onNext( + DataStreamEvent( + DataStreamEventTypes.OnViewAttached.name, + viewId, + ) + ) + } } // DO NOT CHANGE THIS FUNCTION - private fun refocusUnity() { + fun refocusUnity() { UnityPlayerUtils.resume() UnityPlayerUtils.pause() UnityPlayerUtils.resume() @@ -359,7 +277,12 @@ class FlutterUnityWidgetController( if (UnityPlayerUtils.unityPlayer!!.parent != view) { this.attachToView() Handler(Looper.getMainLooper()).post { - methodChannel.invokeMethod("events#onViewReattached", null) + DataStreamEventNotifier.notifier.onNext( + DataStreamEvent( + DataStreamEventTypes.OnViewReattached.name, + viewId, + ) + ) } } view.requestLayout() @@ -367,7 +290,7 @@ class FlutterUnityWidgetController( /// Reference solution to Google Maps implementation /// https://github.com/flutter/plugins/blob/b0bfab678f83bebd49e9f9d0a83fe9b40774e853/packages/google_maps_flutter/google_maps_flutter/android/src/main/java/io/flutter/plugins/googlemaps/GoogleMapController.java#L154 - private fun invalidateFrameIfNeeded() { + fun invalidateFrameIfNeeded() { if (UnityPlayerUtils.unityPlayer == null || loadedCallbackPending) { return } @@ -384,5 +307,17 @@ class FlutterUnityWidgetController( Choreographer.getInstance() .postFrameCallback { f.run() } } + + private fun detach() { + Handler(Looper.getMainLooper()).post { + DataStreamEventNotifier.notifier.onNext( + DataStreamEvent( + DataStreamEventTypes.OnViewDetached.name, + viewId, + ) + ) + } + attached = false + } //#endregion } \ No newline at end of file diff --git a/android/src/main/kotlin/com/xraph/plugin/flutter_unity_widget/FlutterUnityWidgetFactory.kt b/android/src/main/kotlin/com/xraph/plugin/flutter_unity_widget/FlutterUnityWidgetFactory.kt index 19c6fb4a..e4ab9a02 100755 --- a/android/src/main/kotlin/com/xraph/plugin/flutter_unity_widget/FlutterUnityWidgetFactory.kt +++ b/android/src/main/kotlin/com/xraph/plugin/flutter_unity_widget/FlutterUnityWidgetFactory.kt @@ -7,7 +7,6 @@ import io.flutter.plugin.platform.PlatformView import io.flutter.plugin.platform.PlatformViewFactory class FlutterUnityWidgetFactory( - private val binaryMessenger: BinaryMessenger, private var lifecycleProvider: LifecycleProvider ) : PlatformViewFactory(StandardMessageCodec.INSTANCE) { @@ -34,7 +33,6 @@ class FlutterUnityWidgetFactory( return builder.build( id, context, - binaryMessenger, lifecycleProvider ) } diff --git a/android/src/main/kotlin/com/xraph/plugin/flutter_unity_widget/FlutterUnityWidgetPlugin.kt b/android/src/main/kotlin/com/xraph/plugin/flutter_unity_widget/FlutterUnityWidgetPlugin.kt index 332f00cf..da78bd09 100755 --- a/android/src/main/kotlin/com/xraph/plugin/flutter_unity_widget/FlutterUnityWidgetPlugin.kt +++ b/android/src/main/kotlin/com/xraph/plugin/flutter_unity_widget/FlutterUnityWidgetPlugin.kt @@ -4,6 +4,8 @@ import android.annotation.SuppressLint import android.app.Activity import android.app.Application import android.os.Bundle +import android.os.Handler +import android.os.Looper import android.util.Log import androidx.annotation.NonNull import androidx.lifecycle.Lifecycle @@ -15,21 +17,45 @@ import io.flutter.embedding.engine.plugins.FlutterPlugin.FlutterPluginBinding import io.flutter.embedding.engine.plugins.activity.ActivityAware import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding import io.flutter.embedding.engine.plugins.lifecycle.FlutterLifecycleAdapter +import io.flutter.plugin.common.EventChannel +import io.flutter.plugin.common.MethodCall +import io.flutter.plugin.common.MethodChannel + +const val channelIdPrefix = "plugin.xraph.com" +const val STREAM_CHANNEL_NAME = "$channelIdPrefix/stream_channel" /** FlutterUnityWidgetPlugin */ -class FlutterUnityWidgetPlugin : FlutterPlugin, ActivityAware { +class FlutterUnityWidgetPlugin: + FlutterPlugin, + ActivityAware, + MethodChannel.MethodCallHandler, + UnityEventListener { + private var lifecycle: Lifecycle? = null private var flutterPluginBinding: FlutterPluginBinding? = null + private lateinit var methodChannel: MethodChannel + private lateinit var streamChannel: EventChannel + private lateinit var streamHandler: DataStreamHandler override fun onAttachedToEngine(@NonNull binding: FlutterPluginBinding) { Log.d(LOG_TAG, "onAttachedToEngine") + methodChannel = MethodChannel(binding.binaryMessenger, "$channelIdPrefix/base_channel") + methodChannel.setMethodCallHandler(this) + + streamChannel = EventChannel(binding.binaryMessenger, STREAM_CHANNEL_NAME) + streamHandler = DataStreamHandler() + streamChannel.setStreamHandler(streamHandler) + + + // Set unity listener + UnityPlayerUtils.addUnityEventListener(this) + flutterPluginBinding = binding binding .platformViewRegistry .registerViewFactory( VIEW_TYPE, FlutterUnityWidgetFactory( - binding.binaryMessenger, object : LifecycleProvider { override fun getLifecycle(): Lifecycle { return lifecycle!! @@ -39,6 +65,8 @@ class FlutterUnityWidgetPlugin : FlutterPlugin, ActivityAware { override fun onDetachedFromEngine(@NonNull binding: FlutterPluginBinding) { Log.d(LOG_TAG, "onDetachedFromEngine") + UnityPlayerUtils.removeUnityEventListener(this) + streamChannel.setStreamHandler(null) flutterPluginBinding = null } @@ -161,4 +189,107 @@ class FlutterUnityWidgetPlugin : FlutterPlugin, ActivityAware { return lifecycle } } + + override fun onMethodCall(methodCall: MethodCall, result: MethodChannel.Result) { + val id: String = methodCall.argument("unityId").toString() ?: "" + val unityId = "unity-id-$id" + + when (methodCall.method) { + "unity#waitForUnity" -> { + if (UnityPlayerUtils.unityPlayer != null) { + result.success(null) + return + } + result.success(null) + } + "unity#createPlayer" -> { + UnityPlayerUtils.controllers[unityId]?.invalidateFrameIfNeeded() + UnityPlayerUtils.controllers[unityId]?.createPlayer() + UnityPlayerUtils.controllers[unityId]?.refocusUnity() + result.success(null) + } + "unity#isReady" -> { + result.success(UnityPlayerUtils.unityPlayer != null) + } + "unity#isLoaded" -> { + result.success(UnityPlayerUtils.unityLoaded) + } + "unity#isPaused" -> { + result.success(UnityPlayerUtils.unityPaused) + } + "unity#postMessage" -> { + UnityPlayerUtils.controllers[unityId]?.invalidateFrameIfNeeded() + val gameObject: String = methodCall.argument("gameObject").toString() + val methodName: String = methodCall.argument("methodName").toString() + val message: String = methodCall.argument("message").toString() + UnityPlayerUtils.postMessage(gameObject, methodName, message) + result.success(true) + } + "unity#pausePlayer" -> { + UnityPlayerUtils.controllers[unityId]?.invalidateFrameIfNeeded() + UnityPlayerUtils.pause() + result.success(true) + } + "unity#openInNativeProcess" -> { + UnityPlayerUtils.openNativeUnity() + result.success(true) + } + "unity#resumePlayer" -> { + UnityPlayerUtils.controllers[unityId]?.invalidateFrameIfNeeded() + UnityPlayerUtils.resume() + result.success(true) + } + "unity#unloadPlayer" -> { + UnityPlayerUtils.controllers[unityId]?.invalidateFrameIfNeeded() + UnityPlayerUtils.unload() + result.success(true) + } + "unity#dispose" -> { + // destroyUnityViewIfNecessary() + // if () + // dispose() + result.success(null) + } + "unity#silentQuitPlayer" -> { + UnityPlayerUtils.quitPlayer() + result.success(true) + } + "unity#quitPlayer" -> { + if (UnityPlayerUtils.unityPlayer != null) { + UnityPlayerUtils.unityPlayer!!.destroy() + } + result.success(true) + } + else -> result.notImplemented() + } + } + + //#region Unity Events + override fun onMessage(message: String) { + Handler(Looper.getMainLooper()).post { + DataStreamEventNotifier.notifier.onNext( + DataStreamEvent( + DataStreamEventTypes.OnUnityMessage.name, + message, + ) + ) + } + } + + override fun onSceneLoaded(name: String, buildIndex: Int, isLoaded: Boolean, isValid: Boolean) { + Handler(Looper.getMainLooper()).post { + val payload: MutableMap = HashMap() + payload["name"] = name + payload["buildIndex"] = buildIndex + payload["isLoaded"] = isLoaded + payload["isValid"] = isValid + DataStreamEventNotifier.notifier.onNext( + DataStreamEvent( + DataStreamEventTypes.OnUnitySceneLoaded.name, + payload, + ) + ) + } + } + //#endregion } \ No newline at end of file diff --git a/android/src/main/kotlin/com/xraph/plugin/flutter_unity_widget/UnityPlayerUtils.kt b/android/src/main/kotlin/com/xraph/plugin/flutter_unity_widget/UnityPlayerUtils.kt index 266aa16b..197bcb15 100755 --- a/android/src/main/kotlin/com/xraph/plugin/flutter_unity_widget/UnityPlayerUtils.kt +++ b/android/src/main/kotlin/com/xraph/plugin/flutter_unity_widget/UnityPlayerUtils.kt @@ -2,12 +2,13 @@ package com.xraph.plugin.flutter_unity_widget import android.annotation.SuppressLint import android.app.Activity +import android.content.Intent import android.os.Build +import android.os.Handler +import android.os.Looper import android.util.Log import android.view.View import android.view.ViewGroup -import android.view.ViewGroup.LayoutParams -import android.view.ViewGroup.LayoutParams.MATCH_PARENT import android.view.WindowManager import android.widget.FrameLayout import com.unity3d.player.IUnityPlayerLifecycleEvents @@ -19,8 +20,7 @@ class UnityPlayerUtils { companion object { private const val LOG_TAG = "UnityPlayerUtils" - - var controllers: ArrayList = ArrayList() + var controllers = mutableMapOf() var unityPlayer: CustomUnityPlayer? = null var activity: Activity? = null var prevActivityRequestedOrientation: Int? = null @@ -42,6 +42,17 @@ class UnityPlayerUtils { } } + private fun performWindowUpdate() { + if (!options.fullscreenEnabled) { + activity!!.window.addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN) + activity!!.window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN) + } else { + activity!!.window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN) + activity!!.window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_LAYOUT_STABLE + or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN) + } + } + /** * Create a new unity player with callback */ @@ -58,6 +69,7 @@ class UnityPlayerUtils { unityPlayer!!.invalidate() focus() callback?.onReady() + performWindowUpdate() return } @@ -67,11 +79,20 @@ class UnityPlayerUtils { // addUnityViewToBackground(activity!!) unityLoaded = true + DataStreamEventNotifier.notifier.onNext( + DataStreamEvent( + DataStreamEventTypes.OnUnityPlayerCreated.name, + true, + ) + ) + if (!options.fullscreenEnabled) { - activity!!.window.addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); - activity!!.window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); + activity!!.window.addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN) + activity!!.window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN) } else { activity!!.window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN) + activity!!.window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_LAYOUT_STABLE + or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN) } focus() @@ -134,12 +155,26 @@ class UnityPlayerUtils { */ @JvmStatic fun onUnitySceneLoaded(name: String, buildIndex: Int, isLoaded: Boolean, isValid: Boolean) { - for (listener in mUnityEventListeners) { - try { - listener.onSceneLoaded(name, buildIndex, isLoaded, isValid) - } catch (e: Exception) { - e.message?.let { Log.e(LOG_TAG, it) } - } + try { + handleSceneLoaded(name, buildIndex, isLoaded, isValid) + } catch (e: Exception) { + e.message?.let { Log.e(LOG_TAG, it) } + } + } + + fun handleSceneLoaded(name: String, buildIndex: Int, isLoaded: Boolean, isValid: Boolean) { + Handler(Looper.getMainLooper()).post { + val payload: MutableMap = HashMap() + payload["name"] = name + payload["buildIndex"] = buildIndex + payload["isLoaded"] = isLoaded + payload["isValid"] = isValid + DataStreamEventNotifier.notifier.onNext( + DataStreamEvent( + DataStreamEventTypes.OnUnitySceneLoaded.name, + payload, + ) + ) } } @@ -149,12 +184,13 @@ class UnityPlayerUtils { @JvmStatic fun onUnityMessage(message: String) { Log.d("UnityListener", "total listeners are ${mUnityEventListeners.size}") - for (listener in mUnityEventListeners) { - try { - listener.onMessage(message) - } catch (e: Exception) { - e.message?.let { Log.e(LOG_TAG, it) } - } + Handler(Looper.getMainLooper()).post { + DataStreamEventNotifier.notifier.onNext( + DataStreamEvent( + DataStreamEventTypes.OnUnityMessage.name, + message, + ) + ) } } @@ -180,7 +216,8 @@ class UnityPlayerUtils { pause() shakeActivity() } else { - controllers[controllers.size - 1].reattachToView() + val controllersRefs = controllers.values.toList() + controllersRefs[controllersRefs.size - 1].reattachToView() } } } @@ -209,5 +246,15 @@ class UnityPlayerUtils { val layoutParams = ViewGroup.LayoutParams(1, 1) activity!!.addContentView(unityPlayer, layoutParams) } + + fun openNativeUnity() { + if (activity == null) { return } + + val intent = Intent(activity, OverrideUnityActivity::class.java) + intent.flags = Intent.FLAG_ACTIVITY_REORDER_TO_FRONT + intent.putExtra("fullscreen", options.fullscreenEnabled) + intent.putExtra("flutterActivity", activity?.javaClass) + activity?.startActivityForResult(intent, 1) + } } } \ No newline at end of file diff --git a/example/android/app/src/main/res/values/styles.xml b/example/android/app/src/main/res/values/styles.xml index 1f83a33f..25c56c8e 100644 --- a/example/android/app/src/main/res/values/styles.xml +++ b/example/android/app/src/main/res/values/styles.xml @@ -5,6 +5,7 @@ @drawable/launch_background + true diff --git a/example/ios/Flutter/AppFrameworkInfo.plist b/example/ios/Flutter/AppFrameworkInfo.plist index f2872cf4..4f8d4d24 100644 --- a/example/ios/Flutter/AppFrameworkInfo.plist +++ b/example/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 9.0 + 11.0 diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj index 52f6bc3f..b0783359 100644 --- a/example/ios/Runner.xcodeproj/project.pbxproj +++ b/example/ios/Runner.xcodeproj/project.pbxproj @@ -345,7 +345,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -361,6 +361,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = L23W97HT75; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -376,7 +377,7 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter", ); - PRODUCT_BUNDLE_IDENTIFIER = com.xraph.plugin.fuwPluginExample; + PRODUCT_BUNDLE_IDENTIFIER = com.xraph.plugin.fuwPluginExampleRex; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; @@ -431,7 +432,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -480,7 +481,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -514,7 +515,7 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter", ); - PRODUCT_BUNDLE_IDENTIFIER = com.xraph.plugin.fuwPluginExample; + PRODUCT_BUNDLE_IDENTIFIER = com.xraph.plugin.fuwPluginExampleRex; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -530,6 +531,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = L23W97HT75; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -545,7 +547,7 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter", ); - PRODUCT_BUNDLE_IDENTIFIER = com.xraph.plugin.fuwPluginExample; + PRODUCT_BUNDLE_IDENTIFIER = com.xraph.plugin.fuwPluginExampleRex; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; diff --git a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 3db53b6e..c87d15a3 100644 --- a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -27,8 +27,6 @@ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" shouldUseLaunchSchemeArgsEnv = "YES"> - - - - + + - - + CADisableMinimumFrameDurationOnPhone + CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleDisplayName @@ -43,7 +45,5 @@ UIViewControllerBasedStatusBarAppearance - CADisableMinimumFrameDurationOnPhone - diff --git a/example/lib/screens/api_screen.dart b/example/lib/screens/api_screen.dart index 02104b0c..eef906aa 100644 --- a/example/lib/screens/api_screen.dart +++ b/example/lib/screens/api_screen.dart @@ -12,7 +12,7 @@ class ApiScreen extends StatefulWidget { } class _ApiScreenState extends State { - UnityWidgetController? _unityWidgetController; + // UnityWidgetController? _unityWidgetController; double _sliderValue = 0.0; @override @@ -22,7 +22,7 @@ class _ApiScreenState extends State { @override void dispose() { - _unityWidgetController?.dispose(); + FlutterUnityController.instance.dispose(); super.dispose(); } @@ -44,7 +44,7 @@ class _ApiScreenState extends State { onUnityCreated: onUnityCreated, onUnityMessage: onUnityMessage, onUnitySceneLoaded: onUnitySceneLoaded, - fullscreen: false, + fullscreen: true, useAndroidViewSurface: false, ), PointerInterceptor( @@ -78,25 +78,25 @@ class _ApiScreenState extends State { children: [ MaterialButton( onPressed: () { - _unityWidgetController?.quit(); + FlutterUnityController.instance.quit(); }, child: const Text("Quit"), ), MaterialButton( onPressed: () { - _unityWidgetController?.create(); + FlutterUnityController.instance.create(); }, child: const Text("Create"), ), MaterialButton( onPressed: () { - _unityWidgetController?.pause(); + FlutterUnityController.instance.pause(); }, child: const Text("Pause"), ), MaterialButton( onPressed: () { - _unityWidgetController?.resume(); + FlutterUnityController.instance.resume(); }, child: const Text("Resume"), ), @@ -109,20 +109,20 @@ class _ApiScreenState extends State { children: [ MaterialButton( onPressed: () async { - await _unityWidgetController - ?.openInNativeProcess(); + await FlutterUnityController.instance + .openInNativeProcess(); }, child: const Text("Open Native"), ), MaterialButton( onPressed: () { - _unityWidgetController?.unload(); + FlutterUnityController.instance.unload(); }, child: const Text("Unload"), ), MaterialButton( onPressed: () { - _unityWidgetController?.quit(); + FlutterUnityController.instance.quit(); }, child: const Text("Silent Quit"), ), @@ -141,7 +141,7 @@ class _ApiScreenState extends State { } void setRotationSpeed(String speed) { - _unityWidgetController?.postMessage( + FlutterUnityController.instance.postMessage( 'Cube', 'SetRotationSpeed', speed, @@ -163,6 +163,6 @@ class _ApiScreenState extends State { // Callback that connects the created controller to the unity controller void onUnityCreated(controller) { - _unityWidgetController = controller; + // _unityWidgetController = controller; } } diff --git a/example/test/widget_test.dart b/example/test/widget_test.dart index 96b8ee3f..ae6b56fa 100644 --- a/example/test/widget_test.dart +++ b/example/test/widget_test.dart @@ -13,7 +13,7 @@ import 'package:flutter_unity_widget_example/main.dart'; void main() { testWidgets('Verify Platform version', (WidgetTester tester) async { // Build our app and trigger a frame. - await tester.pumpWidget(MyApp()); + await tester.pumpWidget(const MyApp()); // Verify that platform version is retrieved. expect( diff --git a/example/unity/DemoApp/Assembly-CSharp-Editor.csproj b/example/unity/DemoApp/Assembly-CSharp-Editor.csproj index 6a7d33c4..7dd6652d 100644 --- a/example/unity/DemoApp/Assembly-CSharp-Editor.csproj +++ b/example/unity/DemoApp/Assembly-CSharp-Editor.csproj @@ -1,848 +1,824 @@ - - - - 9.0 - - - Debug - AnyCPU - 10.0.20506 - 2.0 - - {FC6EB947-28DE-8385-8FAC-5C1621986B03} - Library - Properties - Assembly-CSharp-Editor - v4.7.1 - 512 - . - - - true - full - false - Temp\Bin\Debug\ - UNITY_2022_1_7;UNITY_2022_1;UNITY_2022;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_2_OR_NEWER;UNITY_2017_3_OR_NEWER;UNITY_2017_4_OR_NEWER;UNITY_2018_1_OR_NEWER;UNITY_2018_2_OR_NEWER;UNITY_2018_3_OR_NEWER;UNITY_2018_4_OR_NEWER;UNITY_2019_1_OR_NEWER;UNITY_2019_2_OR_NEWER;UNITY_2019_3_OR_NEWER;UNITY_2019_4_OR_NEWER;UNITY_2020_1_OR_NEWER;UNITY_2020_2_OR_NEWER;UNITY_2020_3_OR_NEWER;UNITY_2021_1_OR_NEWER;UNITY_2021_2_OR_NEWER;UNITY_2021_3_OR_NEWER;UNITY_2022_1_OR_NEWER;UNITY_INCLUDE_TESTS;USE_SEARCH_ENGINE_API;USE_SEARCH_TABLE;USE_SEARCH_MODULE;USE_PROPERTY_DATABASE;USE_QUERY_BUILDER;USE_SEARCH_EXTENSION_API;SCENE_TEMPLATE_MODULE;ENABLE_AR;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_TEXTURE_STREAMING;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_UNITYWEBREQUEST;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_EDITOR_GAME_SERVICES;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_HUB_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_DIRECTOR_TEXTURE;ENABLE_MANAGED_JOBS;ENABLE_MANAGED_TRANSFORM_JOBS;ENABLE_MANAGED_ANIMATION_JOBS;ENABLE_MANAGED_AUDIO_JOBS;ENABLE_ENGINE_CODE_STRIPPING;ENABLE_ONSCREEN_KEYBOARD;ENABLE_MANAGED_UNITYTLS;INCLUDE_DYNAMIC_GI;ENABLE_SCRIPTING_GC_WBARRIERS;PLATFORM_SUPPORTS_MONO;ENABLE_VIDEO;ENABLE_ACCELERATOR_CLIENT_DEBUGGING;PLATFORM_IOS;TEXTCORE_1_0_OR_NEWER;ENABLE_RUNTIME_GI;ENABLE_GAMECENTER;ENABLE_NETWORK;ENABLE_IOS_ON_DEMAND_RESOURCES;ENABLE_IOS_APP_SLICING;PLAYERCONNECTION_LISTENS_FIXED_PORT;DEBUGGER_LISTENS_FIXED_PORT;PLATFORM_SUPPORTS_ADS_ID;SUPPORT_ENVIRONMENT_VARIABLES;PLATFORM_SUPPORTS_PROFILER;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_ETC_COMPRESSION;ENABLE_UNITYADS_RUNTIME;UNITY_UNITYADS_API;UNITY_IOS;PLATFORM_IPHONE;UNITY_IPHONE;UNITY_IPHONE_API;UNITY_HAS_GOOGLEVR;ENABLE_SPATIALTRACKING;ENABLE_MONO;NET_4_6;NET_UNITY_4_8;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_OSX;ENABLE_UNITY_COLLECTIONS_CHECKS;ENABLE_BURST_AOT;UNITY_TEAM_LICENSE;UNITY_PRO_LICENSE;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_DIRECTOR;ENABLE_LOCALIZATION;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_TILEMAP;ENABLE_TIMELINE;ENABLE_LEGACY_INPUT_MANAGER;UNITY_XR_ARKIT_LOADER_ENABLED;CSHARP_7_OR_LATER;CSHARP_7_3_OR_NEWER - prompt - 4 - 0169 - False - - - pdbonly - true - Temp\bin\Release\ - prompt - 4 - 0169 - False - - - true - true - false - false - false - - - {E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Package - 2.0.15 - Editor:5 - iOS:9 - 2022.1.7f1 - - - - - - - - - - - - - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.AIModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.ARModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.AccessibilityModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.AndroidJNIModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.AnimationModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.AssetBundleModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.AudioModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.ClothModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.ClusterInputModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.ClusterRendererModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.CoreModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.CrashReportingModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.DSPGraphModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.DirectorModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.GIModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.GameCenterModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.GridModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.HotReloadModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.IMGUIModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.ImageConversionModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.InputModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.InputLegacyModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.JSONSerializeModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.LocalizationModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.NVIDIAModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.ParticleSystemModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.PerformanceReportingModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.PhysicsModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.Physics2DModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.ProfilerModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.RuntimeInitializeOnLoadManagerInitializerModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.ScreenCaptureModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.SharedInternalsModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.SpriteMaskModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.SpriteShapeModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.StreamingModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.SubstanceModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.SubsystemsModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.TLSModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.TerrainModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.TerrainPhysicsModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.TextCoreFontEngineModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.TextCoreTextEngineModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.TextRenderingModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.TilemapModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UIModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UIElementsModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UIElementsNativeModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UNETModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UmbraModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityAnalyticsModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityConnectModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityCurlModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityTestProtocolModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityWebRequestModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityWebRequestAssetBundleModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityWebRequestAudioModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityWebRequestTextureModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityWebRequestWWWModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.VFXModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.VRModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.VehiclesModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.VideoModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.VirtualTexturingModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.WindModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.XRModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.CoreModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.DeviceSimulatorModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.DiagnosticsModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.GraphViewModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.PackageManagerUIModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.PresetsUIModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.QuickSearchModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.SceneTemplateModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.TextCoreFontEngineModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.TextCoreTextEngineModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.UIBuilderModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.UIElementsModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.UIElementsSamplesModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.UIServiceModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.UnityConnectModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEditor.Graphs.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/PlaybackEngines/WebGLSupport/UnityEditor.WebGL.Extensions.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/PlaybackEngines/MacStandaloneSupport/UnityEditor.OSXStandalone.Extensions.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/PlaybackEngines/AndroidPlayer/UnityEditor.Android.Extensions.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/PlaybackEngines/iOSSupport/UnityEditor.iOS.Extensions.dll - - - Library/PackageCache/com.unity.collab-proxy@1.15.18/Lib/Editor/PlasticSCM/Unity.Plastic.Newtonsoft.Json.dll - - - Library/PackageCache/com.unity.collab-proxy@1.15.18/Lib/Editor/PlasticSCM/Unity.Plastic.Antlr3.Runtime.dll - - - Library/PackageCache/com.unity.collab-proxy@1.15.18/Lib/Editor/PlasticSCM/unityplastic.dll - - - Assets/AssetStoreTools/Editor/AssetStoreTools.dll - - - Library/PackageCache/com.unity.collab-proxy@1.15.18/Lib/Editor/PlasticSCM/log4netPlastic.dll - - - Library/PackageCache/com.unity.nuget.newtonsoft-json@3.0.2/Runtime/Newtonsoft.Json.dll - - - Library/PackageCache/com.unity.ext.nunit@1.0.6/net35/unity-custom/nunit.framework.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/PlaybackEngines/iOSSupport/UnityEditor.iOS.Extensions.Xcode.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/PlaybackEngines/iOSSupport/UnityEditor.iOS.Extensions.Common.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/PlaybackEngines/AndroidPlayer/Unity.Android.Types.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/PlaybackEngines/AndroidPlayer/Unity.Android.Gradle.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/mscorlib.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Core.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Runtime.Serialization.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Xml.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Xml.Linq.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Numerics.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Numerics.Vectors.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Net.Http.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.IO.Compression.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Microsoft.CSharp.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Data.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Data.DataSetExtensions.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Drawing.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.IO.Compression.FileSystem.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.ComponentModel.Composition.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Transactions.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/Microsoft.Win32.Primitives.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.AppContext.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Buffers.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Collections.Concurrent.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Collections.NonGeneric.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Collections.Specialized.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Collections.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ComponentModel.Annotations.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ComponentModel.EventBasedAsync.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ComponentModel.Primitives.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ComponentModel.TypeConverter.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ComponentModel.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Console.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Data.Common.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Diagnostics.Contracts.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Diagnostics.Debug.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Diagnostics.FileVersionInfo.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Diagnostics.Process.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Diagnostics.StackTrace.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Diagnostics.TextWriterTraceListener.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Diagnostics.Tools.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Diagnostics.TraceSource.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Drawing.Primitives.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Dynamic.Runtime.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Globalization.Calendars.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Globalization.Extensions.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Globalization.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.Compression.ZipFile.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.FileSystem.DriveInfo.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.FileSystem.Primitives.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.FileSystem.Watcher.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.FileSystem.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.IsolatedStorage.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.MemoryMappedFiles.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.Pipes.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.UnmanagedMemoryStream.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Linq.Expressions.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Linq.Parallel.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Linq.Queryable.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Linq.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Memory.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.Http.Rtc.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.NameResolution.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.NetworkInformation.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.Ping.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.Primitives.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.Requests.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.Security.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.Sockets.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.WebHeaderCollection.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.WebSockets.Client.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.WebSockets.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ObjectModel.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Reflection.DispatchProxy.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Reflection.Emit.ILGeneration.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Reflection.Emit.Lightweight.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Reflection.Emit.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Reflection.Extensions.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Reflection.Primitives.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Reflection.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Resources.Reader.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Resources.ResourceManager.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Resources.Writer.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.CompilerServices.VisualC.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.Extensions.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.Handles.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.InteropServices.RuntimeInformation.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.InteropServices.WindowsRuntime.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.InteropServices.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.Numerics.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.Serialization.Formatters.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.Serialization.Json.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.Serialization.Primitives.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.Serialization.Xml.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Security.Claims.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Security.Cryptography.Algorithms.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Security.Cryptography.Csp.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Security.Cryptography.Encoding.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Security.Cryptography.Primitives.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Security.Cryptography.X509Certificates.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Security.Principal.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Security.SecureString.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ServiceModel.Duplex.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ServiceModel.Http.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ServiceModel.NetTcp.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ServiceModel.Primitives.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ServiceModel.Security.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Text.Encoding.Extensions.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Text.Encoding.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Text.RegularExpressions.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Threading.Overlapped.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Threading.Tasks.Extensions.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Threading.Tasks.Parallel.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Threading.Tasks.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Threading.Thread.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Threading.ThreadPool.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Threading.Timer.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Threading.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ValueTuple.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Xml.ReaderWriter.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Xml.XDocument.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Xml.XPath.XDocument.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Xml.XPath.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Xml.XmlDocument.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Xml.XmlSerializer.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/netstandard.dll - - - Library/ScriptAssemblies/UnityEngine.TestRunner.dll - - - Library/ScriptAssemblies/UnityEditor.TestRunner.dll - - - Library/ScriptAssemblies/Unity.XR.ARKit.dll - - - Library/ScriptAssemblies/Unity.VSCode.Editor.dll - - - Library/ScriptAssemblies/Unity.TextMeshPro.Editor.dll - - - Library/ScriptAssemblies/Unity.VisualStudio.Editor.dll - - - Library/ScriptAssemblies/Unity.XR.Management.Editor.dll - - - Library/ScriptAssemblies/Unity.Timeline.dll - - - Library/ScriptAssemblies/Unity.TextMeshPro.dll - - - Library/ScriptAssemblies/Unity.XR.ARCore.Editor.dll - - - Library/ScriptAssemblies/Unity.XR.ARKit.Editor.dll - - - Library/ScriptAssemblies/Unity.Subsystem.Registration.dll - - - Library/ScriptAssemblies/UnityEditor.UI.dll - - - Library/ScriptAssemblies/Unity.PlasticSCM.Editor.dll - - - Library/ScriptAssemblies/Unity.Rider.Editor.dll - - - Library/ScriptAssemblies/UnityEngine.SpatialTracking.dll - - - Library/ScriptAssemblies/UnityEngine.UI.dll - - - Library/ScriptAssemblies/Unity.Services.Core.dll - - - Library/ScriptAssemblies/Unity.EditorCoroutines.Editor.dll - - - Library/ScriptAssemblies/Unity.Services.Core.Analytics.dll - - - Library/ScriptAssemblies/UnityEngine.XR.LegacyInputHelpers.dll - - - Library/ScriptAssemblies/Unity.Services.Core.Environments.dll - - - Library/ScriptAssemblies/Unity.Timeline.Editor.dll - - - Library/ScriptAssemblies/Unity.XR.ARSubsystems.Editor.dll - - - Library/ScriptAssemblies/UnityEditor.XR.LegacyInputHelpers.dll - - - Library/ScriptAssemblies/Unity.XR.Management.dll - - - Library/ScriptAssemblies/Unity.XR.ARCore.dll - - - Library/ScriptAssemblies/Unity.XR.ARSubsystems.dll - - - Library/ScriptAssemblies/Unity.XR.ARFoundation.Editor.dll - - - Library/ScriptAssemblies/UnityEditor.SpatialTracking.dll - - - Library/ScriptAssemblies/Unity.XR.ARFoundation.dll - - - - - {8454A3E8-CD6F-E229-B101-0AFF15D18447} - Assembly-CSharp - - - - - - + + + + 9.0 + <_TargetFrameworkDirectories>non_empty_path_generated_by_unity.rider.package + <_FullFrameworkReferenceAssemblyPaths>non_empty_path_generated_by_unity.rider.package + true + + + Debug + AnyCPU + 10.0.20506 + 2.0 + + {47b96efc-de28-8583-8fac-5c1621986b03} + {E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Library + Properties + Assembly-CSharp-Editor + v4.7.1 + 512 + . + + + true + full + false + Temp\Bin\Debug\Assembly-CSharp-Editor\ + UNITY_2022_1_13;UNITY_2022_1;UNITY_2022;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_2_OR_NEWER;UNITY_2017_3_OR_NEWER;UNITY_2017_4_OR_NEWER;UNITY_2018_1_OR_NEWER;UNITY_2018_2_OR_NEWER;UNITY_2018_3_OR_NEWER;UNITY_2018_4_OR_NEWER;UNITY_2019_1_OR_NEWER;UNITY_2019_2_OR_NEWER;UNITY_2019_3_OR_NEWER;UNITY_2019_4_OR_NEWER;UNITY_2020_1_OR_NEWER;UNITY_2020_2_OR_NEWER;UNITY_2020_3_OR_NEWER;UNITY_2021_1_OR_NEWER;UNITY_2021_2_OR_NEWER;UNITY_2021_3_OR_NEWER;UNITY_2022_1_OR_NEWER;UNITY_INCLUDE_TESTS;USE_SEARCH_ENGINE_API;USE_SEARCH_TABLE;USE_SEARCH_MODULE;USE_PROPERTY_DATABASE;USE_QUERY_BUILDER;USE_SEARCH_EXTENSION_API;SCENE_TEMPLATE_MODULE;ENABLE_AR;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_TEXTURE_STREAMING;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_UNITYWEBREQUEST;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_EDITOR_GAME_SERVICES;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_HUB_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_DIRECTOR_TEXTURE;ENABLE_MANAGED_JOBS;ENABLE_MANAGED_TRANSFORM_JOBS;ENABLE_MANAGED_ANIMATION_JOBS;ENABLE_MANAGED_AUDIO_JOBS;ENABLE_ENGINE_CODE_STRIPPING;ENABLE_ONSCREEN_KEYBOARD;ENABLE_MANAGED_UNITYTLS;INCLUDE_DYNAMIC_GI;ENABLE_SCRIPTING_GC_WBARRIERS;PLATFORM_SUPPORTS_MONO;ENABLE_VIDEO;ENABLE_ACCELERATOR_CLIENT_DEBUGGING;PLATFORM_IOS;TEXTCORE_1_0_OR_NEWER;ENABLE_RUNTIME_GI;ENABLE_GAMECENTER;ENABLE_NETWORK;ENABLE_IOS_ON_DEMAND_RESOURCES;ENABLE_IOS_APP_SLICING;PLAYERCONNECTION_LISTENS_FIXED_PORT;DEBUGGER_LISTENS_FIXED_PORT;PLATFORM_SUPPORTS_ADS_ID;SUPPORT_ENVIRONMENT_VARIABLES;PLATFORM_SUPPORTS_PROFILER;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_ETC_COMPRESSION;ENABLE_UNITYADS_RUNTIME;UNITY_UNITYADS_API;UNITY_IOS;PLATFORM_IPHONE;UNITY_IPHONE;UNITY_IPHONE_API;UNITY_HAS_GOOGLEVR;ENABLE_SPATIALTRACKING;ENABLE_MONO;NET_4_6;NET_UNITY_4_8;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_OSX;ENABLE_UNITY_COLLECTIONS_CHECKS;ENABLE_BURST_AOT;UNITY_TEAM_LICENSE;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_DIRECTOR;ENABLE_LOCALIZATION;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_TILEMAP;ENABLE_TIMELINE;ENABLE_LEGACY_INPUT_MANAGER;UNITY_XR_ARKIT_LOADER_ENABLED;CSHARP_7_OR_LATER;CSHARP_7_3_OR_NEWER + prompt + 4 + 0169,0649 + False + False + + + true + true + false + false + false + + + + + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.AIModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.ARModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.AccessibilityModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.AndroidJNIModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.AnimationModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.AssetBundleModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.AudioModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.ClothModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.ClusterInputModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.ClusterRendererModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.CoreModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.CrashReportingModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.DSPGraphModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.DirectorModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.GIModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.GameCenterModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.GridModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.HotReloadModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.IMGUIModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.ImageConversionModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.InputModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.InputLegacyModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.JSONSerializeModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.LocalizationModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.NVIDIAModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.ParticleSystemModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.PerformanceReportingModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.PhysicsModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.Physics2DModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.ProfilerModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.RuntimeInitializeOnLoadManagerInitializerModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.ScreenCaptureModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.SharedInternalsModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.SpriteMaskModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.SpriteShapeModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.StreamingModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.SubstanceModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.SubsystemsModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.TLSModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.TerrainModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.TerrainPhysicsModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.TextCoreFontEngineModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.TextCoreTextEngineModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.TextRenderingModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.TilemapModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UIModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UIElementsModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UIElementsNativeModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UNETModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UmbraModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityAnalyticsModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityConnectModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityCurlModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityTestProtocolModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityWebRequestModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityWebRequestAssetBundleModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityWebRequestAudioModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityWebRequestTextureModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityWebRequestWWWModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.VFXModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.VRModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.VehiclesModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.VideoModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.VirtualTexturingModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.WindModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.XRModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.CoreModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.DeviceSimulatorModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.DiagnosticsModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.GraphViewModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.PackageManagerUIModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.PresetsUIModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.QuickSearchModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.SceneTemplateModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.TextCoreFontEngineModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.TextCoreTextEngineModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.UIBuilderModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.UIElementsModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.UIElementsSamplesModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.UIServiceModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.UnityConnectModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEditor.Graphs.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/PlaybackEngines/MacStandaloneSupport/UnityEditor.OSXStandalone.Extensions.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/PlaybackEngines/AndroidPlayer/UnityEditor.Android.Extensions.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/PlaybackEngines/iOSSupport/UnityEditor.iOS.Extensions.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/PackageCache/com.unity.collab-proxy@1.17.1/Lib/Editor/PlasticSCM/Unity.Plastic.Newtonsoft.Json.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/PackageCache/com.unity.collab-proxy@1.17.1/Lib/Editor/PlasticSCM/Unity.Plastic.Antlr3.Runtime.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Assets/AssetStoreTools/Editor/AssetStoreTools.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/PackageCache/com.unity.collab-proxy@1.17.1/Lib/Editor/PlasticSCM/log4netPlastic.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/PackageCache/com.unity.nuget.newtonsoft-json@3.0.2/Runtime/Newtonsoft.Json.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/PackageCache/com.unity.collab-proxy@1.17.1/Lib/Editor/PlasticSCM/unityplastic.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/PackageCache/com.unity.ext.nunit@1.0.6/net35/unity-custom/nunit.framework.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/PlaybackEngines/iOSSupport/UnityEditor.iOS.Extensions.Xcode.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/PlaybackEngines/iOSSupport/UnityEditor.iOS.Extensions.Common.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/PlaybackEngines/AndroidPlayer/Unity.Android.Types.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/PlaybackEngines/AndroidPlayer/Unity.Android.Gradle.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/mscorlib.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Core.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Runtime.Serialization.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Xml.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Xml.Linq.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Numerics.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Numerics.Vectors.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Net.Http.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.IO.Compression.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Microsoft.CSharp.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Data.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Data.DataSetExtensions.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Drawing.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.IO.Compression.FileSystem.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.ComponentModel.Composition.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Transactions.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/Microsoft.Win32.Primitives.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.AppContext.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Buffers.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Collections.Concurrent.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Collections.NonGeneric.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Collections.Specialized.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Collections.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ComponentModel.Annotations.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ComponentModel.EventBasedAsync.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ComponentModel.Primitives.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ComponentModel.TypeConverter.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ComponentModel.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Console.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Data.Common.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Diagnostics.Contracts.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Diagnostics.Debug.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Diagnostics.FileVersionInfo.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Diagnostics.Process.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Diagnostics.StackTrace.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Diagnostics.TextWriterTraceListener.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Diagnostics.Tools.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Diagnostics.TraceSource.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Drawing.Primitives.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Dynamic.Runtime.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Globalization.Calendars.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Globalization.Extensions.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Globalization.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.Compression.ZipFile.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.FileSystem.DriveInfo.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.FileSystem.Primitives.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.FileSystem.Watcher.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.FileSystem.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.IsolatedStorage.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.MemoryMappedFiles.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.Pipes.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.UnmanagedMemoryStream.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Linq.Expressions.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Linq.Parallel.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Linq.Queryable.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Linq.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Memory.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.Http.Rtc.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.NameResolution.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.NetworkInformation.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.Ping.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.Primitives.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.Requests.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.Security.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.Sockets.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.WebHeaderCollection.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.WebSockets.Client.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.WebSockets.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ObjectModel.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Reflection.DispatchProxy.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Reflection.Emit.ILGeneration.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Reflection.Emit.Lightweight.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Reflection.Emit.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Reflection.Extensions.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Reflection.Primitives.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Reflection.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Resources.Reader.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Resources.ResourceManager.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Resources.Writer.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.CompilerServices.VisualC.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.Extensions.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.Handles.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.InteropServices.RuntimeInformation.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.InteropServices.WindowsRuntime.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.InteropServices.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.Numerics.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.Serialization.Formatters.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.Serialization.Json.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.Serialization.Primitives.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.Serialization.Xml.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Security.Claims.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Security.Cryptography.Algorithms.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Security.Cryptography.Csp.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Security.Cryptography.Encoding.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Security.Cryptography.Primitives.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Security.Cryptography.X509Certificates.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Security.Principal.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Security.SecureString.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ServiceModel.Duplex.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ServiceModel.Http.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ServiceModel.NetTcp.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ServiceModel.Primitives.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ServiceModel.Security.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Text.Encoding.Extensions.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Text.Encoding.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Text.RegularExpressions.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Threading.Overlapped.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Threading.Tasks.Extensions.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Threading.Tasks.Parallel.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Threading.Tasks.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Threading.Thread.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Threading.ThreadPool.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Threading.Timer.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Threading.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ValueTuple.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Xml.ReaderWriter.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Xml.XDocument.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Xml.XPath.XDocument.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Xml.XPath.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Xml.XmlDocument.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Xml.XmlSerializer.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/netstandard.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/UnityEngine.TestRunner.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/UnityEditor.TestRunner.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.XR.ARKit.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.VSCode.Editor.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.TextMeshPro.Editor.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.VisualStudio.Editor.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.XR.Management.Editor.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.Timeline.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.TextMeshPro.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.XR.ARCore.Editor.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.XR.ARKit.Editor.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.Subsystem.Registration.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/UnityEditor.UI.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.PlasticSCM.Editor.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.Rider.Editor.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/UnityEngine.SpatialTracking.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/UnityEngine.UI.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.Services.Core.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.EditorCoroutines.Editor.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.Services.Core.Analytics.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/UnityEngine.XR.LegacyInputHelpers.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.Services.Core.Environments.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.Timeline.Editor.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.XR.ARSubsystems.Editor.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/UnityEditor.XR.LegacyInputHelpers.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.XR.Management.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.XR.ARCore.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.XR.ARSubsystems.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.XR.ARFoundation.Editor.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/UnityEditor.SpatialTracking.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.XR.ARFoundation.dll + + + + + {e8a35484-6fcd-29e2-b101-0aff15d18447} + Assembly-CSharp + + + + + diff --git a/example/unity/DemoApp/Assembly-CSharp.csproj b/example/unity/DemoApp/Assembly-CSharp.csproj index 2f3f5857..2d08e0c7 100644 --- a/example/unity/DemoApp/Assembly-CSharp.csproj +++ b/example/unity/DemoApp/Assembly-CSharp.csproj @@ -1,804 +1,781 @@ - - - - 9.0 - - - Debug - AnyCPU - 10.0.20506 - 2.0 - - {8454A3E8-CD6F-E229-B101-0AFF15D18447} - Library - Properties - Assembly-CSharp - v4.7.1 - 512 - . - - - true - full - false - Temp\Bin\Debug\ - UNITY_2022_1_7;UNITY_2022_1;UNITY_2022;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_2_OR_NEWER;UNITY_2017_3_OR_NEWER;UNITY_2017_4_OR_NEWER;UNITY_2018_1_OR_NEWER;UNITY_2018_2_OR_NEWER;UNITY_2018_3_OR_NEWER;UNITY_2018_4_OR_NEWER;UNITY_2019_1_OR_NEWER;UNITY_2019_2_OR_NEWER;UNITY_2019_3_OR_NEWER;UNITY_2019_4_OR_NEWER;UNITY_2020_1_OR_NEWER;UNITY_2020_2_OR_NEWER;UNITY_2020_3_OR_NEWER;UNITY_2021_1_OR_NEWER;UNITY_2021_2_OR_NEWER;UNITY_2021_3_OR_NEWER;UNITY_2022_1_OR_NEWER;UNITY_INCLUDE_TESTS;USE_SEARCH_ENGINE_API;USE_SEARCH_TABLE;USE_SEARCH_MODULE;USE_PROPERTY_DATABASE;USE_QUERY_BUILDER;USE_SEARCH_EXTENSION_API;SCENE_TEMPLATE_MODULE;ENABLE_AR;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_TEXTURE_STREAMING;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_UNITYWEBREQUEST;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_EDITOR_GAME_SERVICES;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_HUB_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_DIRECTOR_TEXTURE;ENABLE_MANAGED_JOBS;ENABLE_MANAGED_TRANSFORM_JOBS;ENABLE_MANAGED_ANIMATION_JOBS;ENABLE_MANAGED_AUDIO_JOBS;ENABLE_ENGINE_CODE_STRIPPING;ENABLE_ONSCREEN_KEYBOARD;ENABLE_MANAGED_UNITYTLS;INCLUDE_DYNAMIC_GI;ENABLE_SCRIPTING_GC_WBARRIERS;PLATFORM_SUPPORTS_MONO;ENABLE_VIDEO;ENABLE_ACCELERATOR_CLIENT_DEBUGGING;PLATFORM_IOS;TEXTCORE_1_0_OR_NEWER;ENABLE_RUNTIME_GI;ENABLE_GAMECENTER;ENABLE_NETWORK;ENABLE_IOS_ON_DEMAND_RESOURCES;ENABLE_IOS_APP_SLICING;PLAYERCONNECTION_LISTENS_FIXED_PORT;DEBUGGER_LISTENS_FIXED_PORT;PLATFORM_SUPPORTS_ADS_ID;SUPPORT_ENVIRONMENT_VARIABLES;PLATFORM_SUPPORTS_PROFILER;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_ETC_COMPRESSION;ENABLE_UNITYADS_RUNTIME;UNITY_UNITYADS_API;UNITY_IOS;PLATFORM_IPHONE;UNITY_IPHONE;UNITY_IPHONE_API;UNITY_HAS_GOOGLEVR;ENABLE_SPATIALTRACKING;ENABLE_MONO;NET_4_6;NET_UNITY_4_8;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_OSX;ENABLE_UNITY_COLLECTIONS_CHECKS;ENABLE_BURST_AOT;UNITY_TEAM_LICENSE;UNITY_PRO_LICENSE;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_DIRECTOR;ENABLE_LOCALIZATION;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_TILEMAP;ENABLE_TIMELINE;ENABLE_LEGACY_INPUT_MANAGER;UNITY_XR_ARKIT_LOADER_ENABLED;CSHARP_7_OR_LATER;CSHARP_7_3_OR_NEWER - prompt - 4 - 0169 - False - - - pdbonly - true - Temp\bin\Release\ - prompt - 4 - 0169 - False - - - true - true - false - false - false - - - {E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Package - 2.0.15 - Game:1 - iOS:9 - 2022.1.7f1 - - - - - - - - - - - - - - - - - - - - - - - - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.AIModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.ARModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.AccessibilityModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.AndroidJNIModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.AnimationModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.AssetBundleModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.AudioModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.ClothModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.CoreModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.CrashReportingModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.DSPGraphModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.DirectorModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.GIModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.GameCenterModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.GridModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.HotReloadModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.IMGUIModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.ImageConversionModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.InputModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.InputLegacyModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.JSONSerializeModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.LocalizationModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.ParticleSystemModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.PerformanceReportingModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.PhysicsModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.Physics2DModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.ProfilerModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.RuntimeInitializeOnLoadManagerInitializerModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.ScreenCaptureModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.SharedInternalsModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.SpriteMaskModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.SpriteShapeModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.StreamingModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.SubstanceModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.SubsystemsModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.TLSModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.TerrainModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.TerrainPhysicsModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.TextCoreFontEngineModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.TextCoreTextEngineModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.TextRenderingModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.TilemapModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UIModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UIElementsModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UIElementsNativeModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UNETModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UmbraModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityAnalyticsModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityConnectModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityCurlModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityTestProtocolModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityWebRequestModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityWebRequestAssetBundleModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityWebRequestAudioModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityWebRequestTextureModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityWebRequestWWWModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.VFXModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.VRModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.VehiclesModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.VideoModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.WindModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.XRModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.CoreModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.DeviceSimulatorModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.DiagnosticsModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.GraphViewModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.PackageManagerUIModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.PresetsUIModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.QuickSearchModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.SceneTemplateModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.TextCoreFontEngineModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.TextCoreTextEngineModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.UIBuilderModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.UIElementsModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.UIElementsSamplesModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.UIServiceModule.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.UnityConnectModule.dll - - - Library/PackageCache/com.unity.nuget.newtonsoft-json@3.0.2/Runtime/Newtonsoft.Json.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/PlaybackEngines/iOSSupport/UnityEditor.iOS.Extensions.Xcode.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/PlaybackEngines/iOSSupport/UnityEditor.iOS.Extensions.Common.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/PlaybackEngines/AndroidPlayer/Unity.Android.Types.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/PlaybackEngines/AndroidPlayer/Unity.Android.Gradle.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/mscorlib.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Core.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Runtime.Serialization.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Xml.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Xml.Linq.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Numerics.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Numerics.Vectors.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Net.Http.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.IO.Compression.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Microsoft.CSharp.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Data.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Data.DataSetExtensions.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Drawing.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.IO.Compression.FileSystem.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.ComponentModel.Composition.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Transactions.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/Microsoft.Win32.Primitives.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.AppContext.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Buffers.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Collections.Concurrent.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Collections.NonGeneric.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Collections.Specialized.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Collections.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ComponentModel.Annotations.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ComponentModel.EventBasedAsync.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ComponentModel.Primitives.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ComponentModel.TypeConverter.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ComponentModel.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Console.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Data.Common.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Diagnostics.Contracts.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Diagnostics.Debug.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Diagnostics.FileVersionInfo.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Diagnostics.Process.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Diagnostics.StackTrace.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Diagnostics.TextWriterTraceListener.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Diagnostics.Tools.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Diagnostics.TraceSource.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Drawing.Primitives.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Dynamic.Runtime.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Globalization.Calendars.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Globalization.Extensions.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Globalization.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.Compression.ZipFile.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.FileSystem.DriveInfo.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.FileSystem.Primitives.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.FileSystem.Watcher.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.FileSystem.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.IsolatedStorage.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.MemoryMappedFiles.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.Pipes.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.UnmanagedMemoryStream.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Linq.Expressions.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Linq.Parallel.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Linq.Queryable.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Linq.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Memory.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.Http.Rtc.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.NameResolution.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.NetworkInformation.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.Ping.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.Primitives.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.Requests.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.Security.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.Sockets.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.WebHeaderCollection.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.WebSockets.Client.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.WebSockets.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ObjectModel.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Reflection.DispatchProxy.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Reflection.Emit.ILGeneration.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Reflection.Emit.Lightweight.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Reflection.Emit.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Reflection.Extensions.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Reflection.Primitives.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Reflection.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Resources.Reader.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Resources.ResourceManager.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Resources.Writer.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.CompilerServices.VisualC.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.Extensions.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.Handles.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.InteropServices.RuntimeInformation.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.InteropServices.WindowsRuntime.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.InteropServices.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.Numerics.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.Serialization.Formatters.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.Serialization.Json.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.Serialization.Primitives.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.Serialization.Xml.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Security.Claims.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Security.Cryptography.Algorithms.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Security.Cryptography.Csp.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Security.Cryptography.Encoding.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Security.Cryptography.Primitives.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Security.Cryptography.X509Certificates.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Security.Principal.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Security.SecureString.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ServiceModel.Duplex.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ServiceModel.Http.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ServiceModel.NetTcp.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ServiceModel.Primitives.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ServiceModel.Security.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Text.Encoding.Extensions.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Text.Encoding.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Text.RegularExpressions.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Threading.Overlapped.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Threading.Tasks.Extensions.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Threading.Tasks.Parallel.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Threading.Tasks.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Threading.Thread.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Threading.ThreadPool.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Threading.Timer.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Threading.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ValueTuple.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Xml.ReaderWriter.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Xml.XDocument.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Xml.XPath.XDocument.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Xml.XPath.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Xml.XmlDocument.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Xml.XmlSerializer.dll - - - /Applications/Unity/Hub/Editor/2022.1.7f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/netstandard.dll - - - Library/ScriptAssemblies/Unity.XR.ARKit.dll - - - Library/ScriptAssemblies/Unity.VSCode.Editor.dll - - - Library/ScriptAssemblies/Unity.TextMeshPro.Editor.dll - - - Library/ScriptAssemblies/Unity.VisualStudio.Editor.dll - - - Library/ScriptAssemblies/Unity.XR.Management.Editor.dll - - - Library/ScriptAssemblies/Unity.Timeline.dll - - - Library/ScriptAssemblies/Unity.TextMeshPro.dll - - - Library/ScriptAssemblies/Unity.XR.ARCore.Editor.dll - - - Library/ScriptAssemblies/Unity.XR.ARKit.Editor.dll - - - Library/ScriptAssemblies/Unity.Subsystem.Registration.dll - - - Library/ScriptAssemblies/UnityEditor.UI.dll - - - Library/ScriptAssemblies/Unity.PlasticSCM.Editor.dll - - - Library/ScriptAssemblies/Unity.Rider.Editor.dll - - - Library/ScriptAssemblies/UnityEngine.SpatialTracking.dll - - - Library/ScriptAssemblies/UnityEngine.UI.dll - - - Library/ScriptAssemblies/Unity.Services.Core.dll - - - Library/ScriptAssemblies/Unity.EditorCoroutines.Editor.dll - - - Library/ScriptAssemblies/Unity.Services.Core.Analytics.dll - - - Library/ScriptAssemblies/UnityEngine.XR.LegacyInputHelpers.dll - - - Library/ScriptAssemblies/Unity.Services.Core.Environments.dll - - - Library/ScriptAssemblies/Unity.Timeline.Editor.dll - - - Library/ScriptAssemblies/Unity.XR.ARSubsystems.Editor.dll - - - Library/ScriptAssemblies/UnityEditor.XR.LegacyInputHelpers.dll - - - Library/ScriptAssemblies/Unity.XR.Management.dll - - - Library/ScriptAssemblies/Unity.XR.ARCore.dll - - - Library/ScriptAssemblies/Unity.XR.ARSubsystems.dll - - - Library/ScriptAssemblies/Unity.XR.ARFoundation.Editor.dll - - - Library/ScriptAssemblies/UnityEditor.SpatialTracking.dll - - - Library/ScriptAssemblies/Unity.XR.ARFoundation.dll - - - - - - - - + + + + 9.0 + <_TargetFrameworkDirectories>non_empty_path_generated_by_unity.rider.package + <_FullFrameworkReferenceAssemblyPaths>non_empty_path_generated_by_unity.rider.package + true + + + Debug + AnyCPU + 10.0.20506 + 2.0 + + {e8a35484-6fcd-29e2-b101-0aff15d18447} + {E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Library + Properties + Assembly-CSharp + v4.7.1 + 512 + . + + + true + full + false + Temp\Bin\Debug\Assembly-CSharp\ + UNITY_2022_1_13;UNITY_2022_1;UNITY_2022;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_2_OR_NEWER;UNITY_2017_3_OR_NEWER;UNITY_2017_4_OR_NEWER;UNITY_2018_1_OR_NEWER;UNITY_2018_2_OR_NEWER;UNITY_2018_3_OR_NEWER;UNITY_2018_4_OR_NEWER;UNITY_2019_1_OR_NEWER;UNITY_2019_2_OR_NEWER;UNITY_2019_3_OR_NEWER;UNITY_2019_4_OR_NEWER;UNITY_2020_1_OR_NEWER;UNITY_2020_2_OR_NEWER;UNITY_2020_3_OR_NEWER;UNITY_2021_1_OR_NEWER;UNITY_2021_2_OR_NEWER;UNITY_2021_3_OR_NEWER;UNITY_2022_1_OR_NEWER;UNITY_INCLUDE_TESTS;USE_SEARCH_ENGINE_API;USE_SEARCH_TABLE;USE_SEARCH_MODULE;USE_PROPERTY_DATABASE;USE_QUERY_BUILDER;USE_SEARCH_EXTENSION_API;SCENE_TEMPLATE_MODULE;ENABLE_AR;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_TEXTURE_STREAMING;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_UNITYWEBREQUEST;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_EDITOR_GAME_SERVICES;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_HUB_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_DIRECTOR_TEXTURE;ENABLE_MANAGED_JOBS;ENABLE_MANAGED_TRANSFORM_JOBS;ENABLE_MANAGED_ANIMATION_JOBS;ENABLE_MANAGED_AUDIO_JOBS;ENABLE_ENGINE_CODE_STRIPPING;ENABLE_ONSCREEN_KEYBOARD;ENABLE_MANAGED_UNITYTLS;INCLUDE_DYNAMIC_GI;ENABLE_SCRIPTING_GC_WBARRIERS;PLATFORM_SUPPORTS_MONO;ENABLE_VIDEO;ENABLE_ACCELERATOR_CLIENT_DEBUGGING;PLATFORM_IOS;TEXTCORE_1_0_OR_NEWER;ENABLE_RUNTIME_GI;ENABLE_GAMECENTER;ENABLE_NETWORK;ENABLE_IOS_ON_DEMAND_RESOURCES;ENABLE_IOS_APP_SLICING;PLAYERCONNECTION_LISTENS_FIXED_PORT;DEBUGGER_LISTENS_FIXED_PORT;PLATFORM_SUPPORTS_ADS_ID;SUPPORT_ENVIRONMENT_VARIABLES;PLATFORM_SUPPORTS_PROFILER;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_ETC_COMPRESSION;ENABLE_UNITYADS_RUNTIME;UNITY_UNITYADS_API;UNITY_IOS;PLATFORM_IPHONE;UNITY_IPHONE;UNITY_IPHONE_API;UNITY_HAS_GOOGLEVR;ENABLE_SPATIALTRACKING;ENABLE_MONO;NET_4_6;NET_UNITY_4_8;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_OSX;ENABLE_UNITY_COLLECTIONS_CHECKS;ENABLE_BURST_AOT;UNITY_TEAM_LICENSE;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_DIRECTOR;ENABLE_LOCALIZATION;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_TILEMAP;ENABLE_TIMELINE;ENABLE_LEGACY_INPUT_MANAGER;UNITY_XR_ARKIT_LOADER_ENABLED;CSHARP_7_OR_LATER;CSHARP_7_3_OR_NEWER + prompt + 4 + 0169,0649 + False + False + + + true + true + false + false + false + + + + + + + + + + + + + + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.AIModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.ARModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.AccessibilityModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.AndroidJNIModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.AnimationModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.AssetBundleModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.AudioModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.ClothModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.CoreModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.CrashReportingModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.DSPGraphModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.DirectorModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.GIModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.GameCenterModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.GridModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.HotReloadModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.IMGUIModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.ImageConversionModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.InputModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.InputLegacyModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.JSONSerializeModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.LocalizationModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.ParticleSystemModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.PerformanceReportingModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.PhysicsModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.Physics2DModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.ProfilerModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.RuntimeInitializeOnLoadManagerInitializerModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.ScreenCaptureModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.SharedInternalsModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.SpriteMaskModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.SpriteShapeModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.StreamingModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.SubstanceModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.SubsystemsModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.TLSModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.TerrainModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.TerrainPhysicsModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.TextCoreFontEngineModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.TextCoreTextEngineModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.TextRenderingModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.TilemapModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UIModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UIElementsModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UIElementsNativeModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UNETModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UmbraModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityAnalyticsModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityConnectModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityCurlModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityTestProtocolModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityWebRequestModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityWebRequestAssetBundleModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityWebRequestAudioModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityWebRequestTextureModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.UnityWebRequestWWWModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.VFXModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.VRModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.VehiclesModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.VideoModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.WindModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.XRModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.CoreModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.DeviceSimulatorModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.DiagnosticsModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.GraphViewModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.PackageManagerUIModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.PresetsUIModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.QuickSearchModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.SceneTemplateModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.TextCoreFontEngineModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.TextCoreTextEngineModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.UIBuilderModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.UIElementsModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.UIElementsSamplesModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.UIServiceModule.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/Managed/UnityEngine/UnityEditor.UnityConnectModule.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/PackageCache/com.unity.nuget.newtonsoft-json@3.0.2/Runtime/Newtonsoft.Json.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/PlaybackEngines/iOSSupport/UnityEditor.iOS.Extensions.Xcode.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/PlaybackEngines/iOSSupport/UnityEditor.iOS.Extensions.Common.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/PlaybackEngines/AndroidPlayer/Unity.Android.Types.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/PlaybackEngines/AndroidPlayer/Unity.Android.Gradle.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/mscorlib.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Core.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Runtime.Serialization.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Xml.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Xml.Linq.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Numerics.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Numerics.Vectors.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Net.Http.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.IO.Compression.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Microsoft.CSharp.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Data.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Data.DataSetExtensions.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Drawing.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.IO.Compression.FileSystem.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.ComponentModel.Composition.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/System.Transactions.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/Microsoft.Win32.Primitives.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.AppContext.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Buffers.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Collections.Concurrent.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Collections.NonGeneric.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Collections.Specialized.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Collections.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ComponentModel.Annotations.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ComponentModel.EventBasedAsync.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ComponentModel.Primitives.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ComponentModel.TypeConverter.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ComponentModel.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Console.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Data.Common.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Diagnostics.Contracts.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Diagnostics.Debug.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Diagnostics.FileVersionInfo.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Diagnostics.Process.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Diagnostics.StackTrace.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Diagnostics.TextWriterTraceListener.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Diagnostics.Tools.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Diagnostics.TraceSource.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Drawing.Primitives.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Dynamic.Runtime.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Globalization.Calendars.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Globalization.Extensions.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Globalization.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.Compression.ZipFile.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.FileSystem.DriveInfo.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.FileSystem.Primitives.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.FileSystem.Watcher.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.FileSystem.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.IsolatedStorage.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.MemoryMappedFiles.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.Pipes.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.UnmanagedMemoryStream.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.IO.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Linq.Expressions.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Linq.Parallel.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Linq.Queryable.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Linq.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Memory.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.Http.Rtc.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.NameResolution.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.NetworkInformation.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.Ping.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.Primitives.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.Requests.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.Security.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.Sockets.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.WebHeaderCollection.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.WebSockets.Client.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Net.WebSockets.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ObjectModel.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Reflection.DispatchProxy.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Reflection.Emit.ILGeneration.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Reflection.Emit.Lightweight.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Reflection.Emit.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Reflection.Extensions.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Reflection.Primitives.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Reflection.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Resources.Reader.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Resources.ResourceManager.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Resources.Writer.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.CompilerServices.VisualC.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.Extensions.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.Handles.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.InteropServices.RuntimeInformation.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.InteropServices.WindowsRuntime.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.InteropServices.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.Numerics.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.Serialization.Formatters.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.Serialization.Json.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.Serialization.Primitives.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.Serialization.Xml.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Runtime.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Security.Claims.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Security.Cryptography.Algorithms.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Security.Cryptography.Csp.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Security.Cryptography.Encoding.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Security.Cryptography.Primitives.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Security.Cryptography.X509Certificates.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Security.Principal.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Security.SecureString.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ServiceModel.Duplex.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ServiceModel.Http.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ServiceModel.NetTcp.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ServiceModel.Primitives.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ServiceModel.Security.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Text.Encoding.Extensions.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Text.Encoding.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Text.RegularExpressions.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Threading.Overlapped.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Threading.Tasks.Extensions.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Threading.Tasks.Parallel.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Threading.Tasks.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Threading.Thread.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Threading.ThreadPool.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Threading.Timer.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Threading.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.ValueTuple.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Xml.ReaderWriter.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Xml.XDocument.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Xml.XPath.XDocument.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Xml.XPath.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Xml.XmlDocument.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/System.Xml.XmlSerializer.dll + + + /Applications/Unity/Hub/Editor/2022.1.13f1/Unity.app/Contents/UnityReferenceAssemblies/unity-4.8-api/Facades/netstandard.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.XR.ARKit.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.VSCode.Editor.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.TextMeshPro.Editor.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.VisualStudio.Editor.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.XR.Management.Editor.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.Timeline.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.TextMeshPro.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.XR.ARCore.Editor.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.XR.ARKit.Editor.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.Subsystem.Registration.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/UnityEditor.UI.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.PlasticSCM.Editor.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.Rider.Editor.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/UnityEngine.SpatialTracking.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/UnityEngine.UI.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.Services.Core.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.EditorCoroutines.Editor.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.Services.Core.Analytics.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/UnityEngine.XR.LegacyInputHelpers.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.Services.Core.Environments.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.Timeline.Editor.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.XR.ARSubsystems.Editor.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/UnityEditor.XR.LegacyInputHelpers.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.XR.Management.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.XR.ARCore.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.XR.ARSubsystems.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.XR.ARFoundation.Editor.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/UnityEditor.SpatialTracking.dll + + + /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp/Library/ScriptAssemblies/Unity.XR.ARFoundation.dll + + + + + + + diff --git a/example/unity/DemoApp/DemoApp.sln b/example/unity/DemoApp/DemoApp.sln index cbc6660e..95abec36 100644 --- a/example/unity/DemoApp/DemoApp.sln +++ b/example/unity/DemoApp/DemoApp.sln @@ -1,26 +1,21 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp", "Assembly-CSharp.csproj", "{8454A3E8-CD6F-E229-B101-0AFF15D18447}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp-Editor", "Assembly-CSharp-Editor.csproj", "{FC6EB947-28DE-8385-8FAC-5C1621986B03}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {8454A3E8-CD6F-E229-B101-0AFF15D18447}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8454A3E8-CD6F-E229-B101-0AFF15D18447}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8454A3E8-CD6F-E229-B101-0AFF15D18447}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8454A3E8-CD6F-E229-B101-0AFF15D18447}.Release|Any CPU.Build.0 = Release|Any CPU - {FC6EB947-28DE-8385-8FAC-5C1621986B03}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FC6EB947-28DE-8385-8FAC-5C1621986B03}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FC6EB947-28DE-8385-8FAC-5C1621986B03}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FC6EB947-28DE-8385-8FAC-5C1621986B03}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp", "Assembly-CSharp.csproj", "{e8a35484-6fcd-29e2-b101-0aff15d18447}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp-Editor", "Assembly-CSharp-Editor.csproj", "{47b96efc-de28-8583-8fac-5c1621986b03}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {e8a35484-6fcd-29e2-b101-0aff15d18447}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {e8a35484-6fcd-29e2-b101-0aff15d18447}.Debug|Any CPU.Build.0 = Debug|Any CPU + {47b96efc-de28-8583-8fac-5c1621986b03}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {47b96efc-de28-8583-8fac-5c1621986b03}.Debug|Any CPU.Build.0 = Debug|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/example/unity/DemoApp/ProjectSettings/ProjectSettings.asset b/example/unity/DemoApp/ProjectSettings/ProjectSettings.asset index 3a94e742..58ddca77 100644 --- a/example/unity/DemoApp/ProjectSettings/ProjectSettings.asset +++ b/example/unity/DemoApp/ProjectSettings/ProjectSettings.asset @@ -138,9 +138,7 @@ PlayerSettings: 16:9: 1 Others: 1 bundleVersion: 0.1 - preloadedAssets: - - {fileID: 4800000, guid: c9f956787b1d945e7b36e0516201fc76, type: 3} - - {fileID: 673190512444688615, guid: 1356279c9d721447b97eebba41ddf775, type: 2} + preloadedAssets: [] metroInputSource: 0 wsaTransparentSwapchain: 0 m_HolographicPauseOnTrackingLoss: 1 @@ -813,6 +811,7 @@ PlayerSettings: Android: 0 il2cppCodeGeneration: Android: 1 + iPhone: 1 managedStrippingLevel: {} incrementalIl2cppBuild: {} suppressCommonWarnings: 1 diff --git a/example/unity/DemoApp/UserSettings/EditorUserSettings.asset b/example/unity/DemoApp/UserSettings/EditorUserSettings.asset index dcb85160..05359ebd 100644 --- a/example/unity/DemoApp/UserSettings/EditorUserSettings.asset +++ b/example/unity/DemoApp/UserSettings/EditorUserSettings.asset @@ -8,6 +8,12 @@ EditorUserSettings: RecentlyUsedSceneGuid-0: value: 5255515456565d08555a55734177061515161b2c2d2d72637b7b1f35e7b5306c flags: 0 + RecentlyUsedSceneGuid-1: + value: 540951525053580d5e5e592314770712131549782e2d23662f7d1b65e7b2673b + flags: 0 + RecentlyUsedSceneGuid-2: + value: 5a02575355040c0b550b0e7614775e1344164178782a73697f2f4d63b6b46d3a + flags: 0 vcSharedLogLevel: value: 0d5e400f0650 flags: 0 diff --git a/example/unity/DemoApp/UserSettings/Layouts/default-2022.dwlt b/example/unity/DemoApp/UserSettings/Layouts/default-2022.dwlt index f686675a..3c9bb92a 100644 --- a/example/unity/DemoApp/UserSettings/Layouts/default-2022.dwlt +++ b/example/unity/DemoApp/UserSettings/Layouts/default-2022.dwlt @@ -1,6 +1,78 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 12004, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_PixelRect: + serializedVersion: 2 + x: 194 + y: 173 + width: 642 + height: 623 + m_ShowMode: 0 + m_Title: Project Settings + m_RootView: {fileID: 6} + m_MinSize: {x: 310, y: 221} + m_MaxSize: {x: 4000, y: 4021} + m_Maximized: 0 +--- !u!114 &2 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 12004, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_PixelRect: + serializedVersion: 2 + x: 605 + y: 196 + width: 641 + height: 603 + m_ShowMode: 0 + m_Title: Build Settings + m_RootView: {fileID: 8} + m_MinSize: {x: 640, y: 601} + m_MaxSize: {x: 4000, y: 4021} + m_Maximized: 0 +--- !u!114 &3 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 12004, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_PixelRect: + serializedVersion: 2 + x: 561 + y: 186 + width: 951 + height: 623 + m_ShowMode: 0 + m_Title: Preferences + m_RootView: {fileID: 10} + m_MinSize: {x: 310, y: 221} + m_MaxSize: {x: 4000, y: 4021} + m_Maximized: 0 +--- !u!114 &4 MonoBehaviour: m_ObjectHideFlags: 52 m_CorrespondingSourceObject: {fileID: 0} @@ -17,14 +89,14 @@ MonoBehaviour: x: 0 y: 66 width: 1512 - height: 870 + height: 863 m_ShowMode: 4 m_Title: Project - m_RootView: {fileID: 6} + m_RootView: {fileID: 15} m_MinSize: {x: 875, y: 300} m_MaxSize: {x: 10000, y: 10000} m_Maximized: 1 ---- !u!114 &2 +--- !u!114 &5 MonoBehaviour: m_ObjectHideFlags: 52 m_CorrespondingSourceObject: {fileID: 0} @@ -32,24 +104,174 @@ MonoBehaviour: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 0} m_Enabled: 1 - m_EditorHideFlags: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} + m_Name: ProjectSettingsWindow + m_EditorClassIdentifier: + m_Children: [] + m_Position: + serializedVersion: 2 + x: 0 + y: 0 + width: 642 + height: 623 + m_MinSize: {x: 310, y: 221} + m_MaxSize: {x: 4000, y: 4021} + m_ActualView: {fileID: 21} + m_Panes: + - {fileID: 21} + m_Selected: 0 + m_LastSelected: 0 +--- !u!114 &6 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: + - {fileID: 5} + m_Position: + serializedVersion: 2 + x: 0 + y: 0 + width: 642 + height: 623 + m_MinSize: {x: 310, y: 221} + m_MaxSize: {x: 4000, y: 4021} + vertical: 0 + controlID: 736 +--- !u!114 &7 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} + m_Name: BuildPlayerWindow + m_EditorClassIdentifier: + m_Children: [] + m_Position: + serializedVersion: 2 + x: 0 + y: 0 + width: 641 + height: 603 + m_MinSize: {x: 640, y: 601} + m_MaxSize: {x: 4000, y: 4021} + m_ActualView: {fileID: 22} + m_Panes: + - {fileID: 22} + m_Selected: 0 + m_LastSelected: 0 +--- !u!114 &8 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: + - {fileID: 7} + m_Position: + serializedVersion: 2 + x: 0 + y: 0 + width: 641 + height: 603 + m_MinSize: {x: 640, y: 601} + m_MaxSize: {x: 4000, y: 4021} + vertical: 0 + controlID: 219 +--- !u!114 &9 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} + m_Name: PreferenceSettingsWindow + m_EditorClassIdentifier: + m_Children: [] + m_Position: + serializedVersion: 2 + x: 0 + y: 0 + width: 951 + height: 623 + m_MinSize: {x: 310, y: 221} + m_MaxSize: {x: 4000, y: 4021} + m_ActualView: {fileID: 23} + m_Panes: + - {fileID: 23} + m_Selected: 0 + m_LastSelected: 0 +--- !u!114 &10 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} m_Name: m_EditorClassIdentifier: m_Children: - {fileID: 9} - - {fileID: 3} + m_Position: + serializedVersion: 2 + x: 0 + y: 0 + width: 951 + height: 623 + m_MinSize: {x: 310, y: 221} + m_MaxSize: {x: 4000, y: 4021} + vertical: 0 + controlID: 128 +--- !u!114 &11 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: + - {fileID: 18} + - {fileID: 12} m_Position: serializedVersion: 2 x: 0 y: 30 width: 1512 - height: 820 + height: 813 m_MinSize: {x: 300, y: 200} m_MaxSize: {x: 24288, y: 16192} vertical: 0 controlID: 19 ---- !u!114 &3 +--- !u!114 &12 MonoBehaviour: m_ObjectHideFlags: 52 m_CorrespondingSourceObject: {fileID: 0} @@ -64,18 +286,18 @@ MonoBehaviour: m_Children: [] m_Position: serializedVersion: 2 - x: 1159 + x: 1160 y: 0 - width: 353 - height: 820 + width: 352 + height: 813 m_MinSize: {x: 276, y: 71} m_MaxSize: {x: 4001, y: 4021} - m_ActualView: {fileID: 13} + m_ActualView: {fileID: 25} m_Panes: - - {fileID: 13} + - {fileID: 25} m_Selected: 0 m_LastSelected: 0 ---- !u!114 &4 +--- !u!114 &13 MonoBehaviour: m_ObjectHideFlags: 52 m_CorrespondingSourceObject: {fileID: 0} @@ -92,16 +314,16 @@ MonoBehaviour: serializedVersion: 2 x: 0 y: 0 - width: 579.5 - height: 487 + width: 286 + height: 484.5 m_MinSize: {x: 201, y: 221} m_MaxSize: {x: 4001, y: 4021} - m_ActualView: {fileID: 14} + m_ActualView: {fileID: 26} m_Panes: - - {fileID: 14} + - {fileID: 26} m_Selected: 0 m_LastSelected: 0 ---- !u!114 &5 +--- !u!114 &14 MonoBehaviour: m_ObjectHideFlags: 52 m_CorrespondingSourceObject: {fileID: 0} @@ -117,18 +339,18 @@ MonoBehaviour: m_Position: serializedVersion: 2 x: 0 - y: 487 - width: 1159 - height: 333 + y: 484.5 + width: 1160 + height: 328.5 m_MinSize: {x: 231, y: 271} m_MaxSize: {x: 10001, y: 10021} - m_ActualView: {fileID: 12} + m_ActualView: {fileID: 24} m_Panes: - - {fileID: 12} - - {fileID: 17} + - {fileID: 24} + - {fileID: 29} m_Selected: 0 m_LastSelected: 1 ---- !u!114 &6 +--- !u!114 &15 MonoBehaviour: m_ObjectHideFlags: 52 m_CorrespondingSourceObject: {fileID: 0} @@ -141,22 +363,22 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Children: - - {fileID: 7} - - {fileID: 2} - - {fileID: 8} + - {fileID: 16} + - {fileID: 11} + - {fileID: 17} m_Position: serializedVersion: 2 x: 0 y: 0 width: 1512 - height: 870 + height: 863 m_MinSize: {x: 875, y: 300} m_MaxSize: {x: 10000, y: 10000} m_UseTopView: 1 m_TopViewHeight: 30 m_UseBottomView: 1 m_BottomViewHeight: 20 ---- !u!114 &7 +--- !u!114 &16 MonoBehaviour: m_ObjectHideFlags: 52 m_CorrespondingSourceObject: {fileID: 0} @@ -178,7 +400,7 @@ MonoBehaviour: m_MinSize: {x: 0, y: 0} m_MaxSize: {x: 0, y: 0} m_LastLoadedLayoutName: ---- !u!114 &8 +--- !u!114 &17 MonoBehaviour: m_ObjectHideFlags: 52 m_CorrespondingSourceObject: {fileID: 0} @@ -194,12 +416,12 @@ MonoBehaviour: m_Position: serializedVersion: 2 x: 0 - y: 850 + y: 843 width: 1512 height: 20 m_MinSize: {x: 0, y: 0} m_MaxSize: {x: 0, y: 0} ---- !u!114 &9 +--- !u!114 &18 MonoBehaviour: m_ObjectHideFlags: 52 m_CorrespondingSourceObject: {fileID: 0} @@ -212,19 +434,19 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Children: - - {fileID: 10} - - {fileID: 5} + - {fileID: 19} + - {fileID: 14} m_Position: serializedVersion: 2 x: 0 y: 0 - width: 1159 - height: 820 + width: 1160 + height: 813 m_MinSize: {x: 200, y: 200} m_MaxSize: {x: 16192, y: 16192} vertical: 1 controlID: 20 ---- !u!114 &10 +--- !u!114 &19 MonoBehaviour: m_ObjectHideFlags: 52 m_CorrespondingSourceObject: {fileID: 0} @@ -237,19 +459,19 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Children: - - {fileID: 4} - - {fileID: 11} + - {fileID: 13} + - {fileID: 20} m_Position: serializedVersion: 2 x: 0 y: 0 - width: 1159 - height: 487 + width: 1160 + height: 484.5 m_MinSize: {x: 200, y: 100} m_MaxSize: {x: 16192, y: 8096} vertical: 0 controlID: 21 ---- !u!114 &11 +--- !u!114 &20 MonoBehaviour: m_ObjectHideFlags: 52 m_CorrespondingSourceObject: {fileID: 0} @@ -259,24 +481,186 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 1 m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} - m_Name: + m_Name: SceneView m_EditorClassIdentifier: m_Children: [] m_Position: serializedVersion: 2 - x: 579.5 + x: 286 y: 0 - width: 579.5 - height: 487 + width: 874 + height: 484.5 m_MinSize: {x: 202, y: 221} m_MaxSize: {x: 4002, y: 4021} - m_ActualView: {fileID: 15} + m_ActualView: {fileID: 27} m_Panes: - - {fileID: 15} - - {fileID: 16} + - {fileID: 27} + - {fileID: 28} m_Selected: 0 m_LastSelected: 1 ---- !u!114 &12 +--- !u!114 &21 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 13854, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_MinSize: {x: 310, y: 200} + m_MaxSize: {x: 4000, y: 4000} + m_TitleContent: + m_Text: Project Settings + m_Image: {fileID: 866346219090771560, guid: 0000000000000000d000000000000000, + type: 0} + m_Tooltip: + m_Pos: + serializedVersion: 2 + x: 194 + y: 173 + width: 642 + height: 602 + m_ViewDataDictionary: {fileID: 0} + m_OverlayCanvas: + m_LastAppliedPresetName: Default + m_SaveData: [] + m_PosLeft: {x: 0, y: 0} + m_PosRight: {x: 0, y: 0} + m_Scope: 1 + m_SplitterFlex: 0.2 + m_SearchText: + m_TreeViewState: + scrollPos: {x: 0, y: 0} + m_SelectedIDs: 4dcf9b58 + m_LastClickedID: 1486606157 + m_ExpandedIDs: a01a5fa6000000004f0a7f2e + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 0 + m_ClientGUIView: {fileID: 0} + m_SearchString: +--- !u!114 &22 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 12043, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_MinSize: {x: 640, y: 580} + m_MaxSize: {x: 4000, y: 4000} + m_TitleContent: + m_Text: Build Settings + m_Image: {fileID: 0} + m_Tooltip: + m_Pos: + serializedVersion: 2 + x: 605 + y: 196 + width: 641 + height: 582 + m_ViewDataDictionary: {fileID: 0} + m_OverlayCanvas: + m_LastAppliedPresetName: Default + m_SaveData: [] + m_TreeViewState: + scrollPos: {x: 0, y: 0} + m_SelectedIDs: + m_LastClickedID: 0 + m_ExpandedIDs: + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 0 + m_ClientGUIView: {fileID: 0} + m_SearchString: +--- !u!114 &23 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 13855, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_MinSize: {x: 310, y: 200} + m_MaxSize: {x: 4000, y: 4000} + m_TitleContent: + m_Text: Preferences + m_Image: {fileID: 866346219090771560, guid: 0000000000000000d000000000000000, + type: 0} + m_Tooltip: + m_Pos: + serializedVersion: 2 + x: 561 + y: 186 + width: 951 + height: 602 + m_ViewDataDictionary: {fileID: 0} + m_OverlayCanvas: + m_LastAppliedPresetName: Default + m_SaveData: [] + m_PosLeft: {x: 0, y: 0} + m_PosRight: {x: 0, y: 0} + m_Scope: 0 + m_SplitterFlex: 0.2 + m_SearchText: + m_TreeViewState: + scrollPos: {x: 0, y: 0} + m_SelectedIDs: 71137e95 + m_LastClickedID: -1786899599 + m_ExpandedIDs: 2956c29689577ec100000000 + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 0 + m_ClientGUIView: {fileID: 0} + m_SearchString: +--- !u!114 &24 MonoBehaviour: m_ObjectHideFlags: 52 m_CorrespondingSourceObject: {fileID: 0} @@ -298,9 +682,9 @@ MonoBehaviour: m_Pos: serializedVersion: 2 x: 0 - y: 583 - width: 1158 - height: 312 + y: 580.5 + width: 1159 + height: 307.5 m_ViewDataDictionary: {fileID: 0} m_OverlayCanvas: m_LastAppliedPresetName: Default @@ -318,22 +702,22 @@ MonoBehaviour: m_SkipHidden: 0 m_SearchArea: 1 m_Folders: - - Assets/FlutterUnityIntegration + - Assets/FlutterUnityIntegration/Demo/Scenes m_Globs: [] m_OriginalText: m_ViewMode: 1 m_StartGridSize: 16 m_LastFolders: - - Assets/FlutterUnityIntegration + - Assets/FlutterUnityIntegration/Demo/Scenes m_LastFoldersGridSize: 16 - m_LastProjectPath: /Users/rexraphael/Work/personal/flutter-unity-view-widget/example/unity/DemoApp + m_LastProjectPath: /Users/rexraphael/Work/xraph/flutter-unity-view-widget/example/unity/DemoApp m_LockTracker: m_IsLocked: 0 m_FolderTreeState: scrollPos: {x: 0, y: 0} - m_SelectedIDs: d2510000 - m_LastClickedID: 20946 - m_ExpandedIDs: 00000000ce510000d2510000da51000000ca9a3b + m_SelectedIDs: 48500000 + m_LastClickedID: 20552 + m_ExpandedIDs: 0000000038500000445000004a50000000ca9a3b m_RenameOverlay: m_UserAcceptedRename: 0 m_Name: @@ -349,7 +733,7 @@ MonoBehaviour: m_IsRenaming: 0 m_OriginalEventType: 11 m_IsRenamingFilename: 1 - m_ClientGUIView: {fileID: 5} + m_ClientGUIView: {fileID: 14} m_SearchString: m_CreateAssetUtility: m_EndAction: {fileID: 0} @@ -361,7 +745,7 @@ MonoBehaviour: scrollPos: {x: 0, y: 0} m_SelectedIDs: m_LastClickedID: 0 - m_ExpandedIDs: + m_ExpandedIDs: 0000000038500000 m_RenameOverlay: m_UserAcceptedRename: 0 m_Name: @@ -388,24 +772,24 @@ MonoBehaviour: m_ListAreaState: m_SelectedInstanceIDs: m_LastClickedInstanceID: 0 - m_HadKeyboardFocusLastEvent: 0 + m_HadKeyboardFocusLastEvent: 1 m_ExpandedInstanceIDs: c6230000 m_RenameOverlay: m_UserAcceptedRename: 0 - m_Name: Scenes - m_OriginalName: Scenes + m_Name: + m_OriginalName: m_EditFieldRect: serializedVersion: 2 x: 0 y: 0 width: 0 height: 0 - m_UserData: 20980 + m_UserData: 0 m_IsWaitingForDelay: 0 m_IsRenaming: 0 - m_OriginalEventType: 0 + m_OriginalEventType: 11 m_IsRenamingFilename: 1 - m_ClientGUIView: {fileID: 5} + m_ClientGUIView: {fileID: 14} m_CreateAssetUtility: m_EndAction: {fileID: 0} m_InstanceID: 0 @@ -417,7 +801,7 @@ MonoBehaviour: m_GridSize: 16 m_SkipHiddenPackages: 0 m_DirectoriesAreaWidth: 207 ---- !u!114 &13 +--- !u!114 &25 MonoBehaviour: m_ObjectHideFlags: 52 m_CorrespondingSourceObject: {fileID: 0} @@ -438,10 +822,10 @@ MonoBehaviour: m_Tooltip: m_Pos: serializedVersion: 2 - x: 1159 + x: 1160 y: 96 - width: 352 - height: 799 + width: 351 + height: 792 m_ViewDataDictionary: {fileID: 0} m_OverlayCanvas: m_LastAppliedPresetName: Default @@ -459,7 +843,7 @@ MonoBehaviour: m_LockTracker: m_IsLocked: 0 m_PreviewWindow: {fileID: 0} ---- !u!114 &14 +--- !u!114 &26 MonoBehaviour: m_ObjectHideFlags: 52 m_CorrespondingSourceObject: {fileID: 0} @@ -482,8 +866,8 @@ MonoBehaviour: serializedVersion: 2 x: 0 y: 96 - width: 578.5 - height: 466 + width: 285 + height: 463.5 m_ViewDataDictionary: {fileID: 0} m_OverlayCanvas: m_LastAppliedPresetName: Default @@ -493,7 +877,7 @@ MonoBehaviour: scrollPos: {x: 0, y: 0} m_SelectedIDs: m_LastClickedID: 0 - m_ExpandedIDs: dae6ffff26e7ffff22e8ffff78e8ffffe8e8ffffc8ecffff14edffff14eeffff6eeeffffe2eeffff52f7ffff9ef7ffffbaf8ffff10f9ffff82f9ffff28fbffff + m_ExpandedIDs: 2cfbffff m_RenameOverlay: m_UserAcceptedRename: 0 m_Name: @@ -509,7 +893,7 @@ MonoBehaviour: m_IsRenaming: 0 m_OriginalEventType: 11 m_IsRenamingFilename: 0 - m_ClientGUIView: {fileID: 4} + m_ClientGUIView: {fileID: 13} m_SearchString: m_ExpandedScenes: [] m_CurrenRootInstanceID: 0 @@ -517,7 +901,7 @@ MonoBehaviour: m_IsLocked: 0 m_CurrentSortingName: TransformSorting m_WindowGUID: 4c969a2b90040154d917609493e03593 ---- !u!114 &15 +--- !u!114 &27 MonoBehaviour: m_ObjectHideFlags: 52 m_CorrespondingSourceObject: {fileID: 0} @@ -538,10 +922,10 @@ MonoBehaviour: m_Tooltip: m_Pos: serializedVersion: 2 - x: 579.5 + x: 286 y: 96 - width: 577.5 - height: 466 + width: 872 + height: 463.5 m_ViewDataDictionary: {fileID: 0} m_OverlayCanvas: m_LastAppliedPresetName: Default @@ -855,7 +1239,7 @@ MonoBehaviour: m_SceneVisActive: 1 m_LastLockedObject: {fileID: 0} m_ViewIsLockedToObject: 0 ---- !u!114 &16 +--- !u!114 &28 MonoBehaviour: m_ObjectHideFlags: 52 m_CorrespondingSourceObject: {fileID: 0} @@ -876,10 +1260,10 @@ MonoBehaviour: m_Tooltip: m_Pos: serializedVersion: 2 - x: 507 - y: 94 - width: 1532 - height: 790 + x: -1557 + y: 83 + width: 1108 + height: 560 m_ViewDataDictionary: {fileID: 0} m_OverlayCanvas: m_LastAppliedPresetName: Default @@ -890,10 +1274,10 @@ MonoBehaviour: m_ShowGizmos: 0 m_TargetDisplay: 0 m_ClearColor: {r: 0, g: 0, b: 0, a: 0} - m_TargetSize: {x: 1532, y: 769} + m_TargetSize: {x: 1108, y: 539} m_TextureFilterMode: 0 m_TextureHideFlags: 61 - m_RenderIMGUI: 0 + m_RenderIMGUI: 1 m_EnterPlayModeBehavior: 0 m_fullscreenMonitorIdx: 0 m_playModeBehaviorIdx: 0 @@ -910,10 +1294,10 @@ MonoBehaviour: m_VRangeLocked: 0 hZoomLockedByDefault: 0 vZoomLockedByDefault: 0 - m_HBaseRangeMin: -766 - m_HBaseRangeMax: 766 - m_VBaseRangeMin: -384.5 - m_VBaseRangeMax: 384.5 + m_HBaseRangeMin: -554 + m_HBaseRangeMax: 554 + m_VBaseRangeMin: -269.5 + m_VBaseRangeMax: 269.5 m_HAllowExceedBaseRangeMin: 1 m_HAllowExceedBaseRangeMax: 1 m_VAllowExceedBaseRangeMin: 1 @@ -922,7 +1306,7 @@ MonoBehaviour: m_HSlider: 0 m_VSlider: 0 m_IgnoreScrollWheelUntilClicked: 0 - m_EnableMouseInput: 1 + m_EnableMouseInput: 0 m_EnableSliderZoomHorizontal: 0 m_EnableSliderZoomVertical: 0 m_UniformScale: 1 @@ -931,23 +1315,23 @@ MonoBehaviour: serializedVersion: 2 x: 0 y: 21 - width: 1532 - height: 769 + width: 1108 + height: 539 m_Scale: {x: 1, y: 1} - m_Translation: {x: 766, y: 384.5} + m_Translation: {x: 554, y: 269.5} m_MarginLeft: 0 m_MarginRight: 0 m_MarginTop: 0 m_MarginBottom: 0 m_LastShownAreaInsideMargins: serializedVersion: 2 - x: -766 - y: -384.5 - width: 1532 - height: 769 + x: -554 + y: -269.5 + width: 1108 + height: 539 m_MinimalGUI: 1 m_defaultScale: 1 - m_LastWindowPixelSize: {x: 3064, y: 1580} + m_LastWindowPixelSize: {x: 2216, y: 1120} m_ClearInEditMode: 1 m_NoCameraWarning: 1 m_LowResolutionForAspectRatios: 01000000000000000000 @@ -955,7 +1339,7 @@ MonoBehaviour: m_RenderTexture: {fileID: 0} m_showToolbar: 1 m_showToolbarOnFullscreen: 0 ---- !u!114 &17 +--- !u!114 &29 MonoBehaviour: m_ObjectHideFlags: 52 m_CorrespondingSourceObject: {fileID: 0} @@ -976,10 +1360,10 @@ MonoBehaviour: m_Tooltip: m_Pos: serializedVersion: 2 - x: 0 - y: 583 - width: 1158 - height: 312 + x: -1920 + y: 664 + width: 1472 + height: 375 m_ViewDataDictionary: {fileID: 0} m_OverlayCanvas: m_LastAppliedPresetName: Default diff --git a/ios/Classes/FLTUnityWidgetController.swift b/ios/Classes/FLTUnityWidgetController.swift index 07a74f65..d2fd76c6 100755 --- a/ios/Classes/FLTUnityWidgetController.swift +++ b/ios/Classes/FLTUnityWidgetController.swift @@ -12,9 +12,10 @@ import UnityFramework public class FLTUnityWidgetController: NSObject, FLTUnityOptionsSink, FlutterPlatformView { private var _rootView: FLTUnityView private var viewId: Int64 = 0 + private var keyId = "" private var channel: FlutterMethodChannel? private weak var registrar: (NSObjectProtocol & FlutterPluginRegistrar)? - + private var _disposed = false init( @@ -25,69 +26,28 @@ public class FLTUnityWidgetController: NSObject, FLTUnityOptionsSink, FlutterPla ) { self._rootView = FLTUnityView(frame: frame) super.init() - - globalControllers.append(self) - self.viewId = viewId + keyId = "unity-id-\(viewId)" - let channelName = String(format: "plugin.xraph.com/unity_view_%lld", viewId) - self.channel = FlutterMethodChannel(name: channelName, binaryMessenger: registrar.messenger()) - - self.channel?.setMethodCallHandler(self.methodHandler) + globalControllers.append(self) + GetUnityPlayerUtils().activeController = self self.attachView() } - func methodHandler(_ call: FlutterMethodCall, result: FlutterResult) { - if call.method == "unity#dispose" { - self.dispose() - result(nil) - } else { - self.reattachView() - if call.method == "unity#isReady" { - result(GetUnityPlayerUtils().unityIsInitiallized()) - } else if call.method == "unity#isLoaded" { - let _isUnloaded = GetUnityPlayerUtils().isUnityLoaded() - result(_isUnloaded) - } else if call.method == "unity#createUnityPlayer" { - startUnityIfNeeded() - result(nil) - } else if call.method == "unity#isPaused" { - let _isPaused = GetUnityPlayerUtils().isUnityPaused() - result(_isPaused) - } else if call.method == "unity#pausePlayer" { - GetUnityPlayerUtils().pause() - result(nil) - } else if call.method == "unity#postMessage" { - self.postMessage(call: call, result: result) - result(nil) - } else if call.method == "unity#resumePlayer" { - GetUnityPlayerUtils().resume() - result(nil) - } else if call.method == "unity#unloadPlayer" { - GetUnityPlayerUtils().unload() - result(nil) - } else if call.method == "unity#quitPlayer" { - GetUnityPlayerUtils().quit() - result(nil) - } else if call.method == "unity#waitForUnity" { - result(nil) - } else { - result(FlutterMethodNotImplemented) - } - } - } - func setDisabledUnload(enabled: Bool) { } public func view() -> UIView { - return _rootView; + return _rootView; } - private func startUnityIfNeeded() { + func startUnityIfNeeded() { GetUnityPlayerUtils().createPlayer(completed: { [self] (view: UIView?) in - + GetUnityPlayerUtils().notifyFlutter( + data: DataStreamEvent( + eventType: DataStreamEventTypes.OnUnityPlayerCreated, + data: true)) }) } @@ -103,8 +63,22 @@ public class FLTUnityWidgetController: NSObject, FLTUnityOptionsSink, FlutterPla if let unityView = unityView { _rootView.addSubview(unityView) _rootView.layoutIfNeeded() - self.channel?.invokeMethod("events#onViewReattached", arguments: "") } + + GetUnityPlayerUtils().notifyFlutter( + data: DataStreamEvent( + eventType: DataStreamEventTypes.OnUnityViewCreated, + data: true)) + + GetUnityPlayerUtils().notifyFlutter( + data: DataStreamEvent( + eventType: DataStreamEventTypes.OnUnityViewCreated, + data: true)) + + GetUnityPlayerUtils().notifyFlutter( + data: DataStreamEvent( + eventType: DataStreamEventTypes.OnViewAttached, + data: keyId)) GetUnityPlayerUtils().resume() } @@ -113,6 +87,11 @@ public class FLTUnityWidgetController: NSObject, FLTUnityOptionsSink, FlutterPla let superview = unityView?.superview if superview != _rootView { attachView() + + GetUnityPlayerUtils().notifyFlutter( + data: DataStreamEvent( + eventType: DataStreamEventTypes.OnViewReattached, + data: true)) } GetUnityPlayerUtils().resume() @@ -144,23 +123,16 @@ public class FLTUnityWidgetController: NSObject, FLTUnityOptionsSink, FlutterPla return value == self } - channel?.setMethodCallHandler(nil) removeViewIfNeeded() - + GetUnityPlayerUtils().activeController = globalControllers.last + + GetUnityPlayerUtils().notifyFlutter( + data: DataStreamEvent( + eventType: DataStreamEventTypes.OnViewDetached, + data: keyId)) _disposed = true } - /// Handles messages from unity in the current view - func handleMessage(message: String) { - self.channel?.invokeMethod("events#onUnityMessage", arguments: message) - } - - - /// Handles scene changed event from unity in the current view - func handleSceneChangeEvent(info: Dictionary) { - self.channel?.invokeMethod("events#onUnitySceneLoaded", arguments: info) - } - /// Post messages to unity from flutter func postMessage(call: FlutterMethodCall, result: FlutterResult) { guard let args = call.arguments else { diff --git a/ios/Classes/HandleEventSink.swift b/ios/Classes/HandleEventSink.swift new file mode 100644 index 00000000..ee652ead --- /dev/null +++ b/ios/Classes/HandleEventSink.swift @@ -0,0 +1,75 @@ +// +// HandleEventSink.swift +// flutter_unity_widget +// +// Created by Rex Raphael on 14/12/2022. +// + +import Foundation + +extension Notification.Name { + static var publishToFlutter: Notification.Name { + return .init(rawValue: "message.publishToFlutter")} +} + +/// StepCounter, handles step count streaming +public class HandleEventSink: NSObject, FlutterStreamHandler { + private var eventSink: FlutterEventSink? + + public func onListen(withArguments arguments: Any?, eventSink: @escaping FlutterEventSink) -> FlutterError? { + self.eventSink = eventSink + + NotificationCenter + .default + .addObserver( + self, + selector: #selector(publishMessage), + name: .publishToFlutter, + object: nil + ) + + if #available(iOS 10.0, *) { + + } else { + eventSink(FlutterError(code: "1", message: "Requires iOS 10.0 minimum", details: nil)) + } + return nil + } + + @objc func publishMessage(_ notification: Notification){ + var payload = notification.userInfo?["payload"] as? [String: Any] ?? [:] + eventSink!(payload) + } + + public func onCancel(withArguments arguments: Any?) -> FlutterError? { + NotificationCenter.default.removeObserver(self) + NotificationCenter.default + .removeObserver(self, name: .publishToFlutter, object: nil) + + eventSink = nil + return nil + } +} + +enum DataStreamEventTypes : String { + case OnUnityViewCreated + case OnUnityPlayerReInitialize + case OnViewReattached + case OnUnityPlayerCreated + case OnUnityPlayerUnloaded + case OnUnityPlayerQuited + case OnUnitySceneLoaded + case OnUnityMessage + case OnViewAttached + case OnViewDetached +} + +struct DataStreamEvent { + var eventType: DataStreamEventTypes + var data: Any + + func toMap() -> [String: Any] { + let m = ["eventType": eventType.rawValue, "data": data] + return m + } +} diff --git a/ios/Classes/SwiftFlutterUnityWidgetPlugin.swift b/ios/Classes/SwiftFlutterUnityWidgetPlugin.swift index c949d8cc..2f3c1f75 100755 --- a/ios/Classes/SwiftFlutterUnityWidgetPlugin.swift +++ b/ios/Classes/SwiftFlutterUnityWidgetPlugin.swift @@ -2,8 +2,83 @@ import Flutter import UIKit public class SwiftFlutterUnityWidgetPlugin: NSObject, FlutterPlugin { + private static var methodChannel: FlutterMethodChannel? + private static var unityEventHandler: HandleEventSink? + private static var unityEventChannel: FlutterEventChannel? + public static func register(with registrar: FlutterPluginRegistrar) { + methodChannel = FlutterMethodChannel(name: "plugin.xraph.com/base_channel", binaryMessenger: registrar.messenger()) + unityEventChannel = FlutterEventChannel.init(name: "plugin.xraph.com/stream_channel", binaryMessenger: registrar.messenger()) + unityEventHandler = HandleEventSink() + + methodChannel?.setMethodCallHandler(methodHandler) + unityEventChannel?.setStreamHandler(unityEventHandler) + let fuwFactory = FLTUnityWidgetFactory(registrar: registrar) registrar.register(fuwFactory, withId: "plugin.xraph.com/unity_view", gestureRecognizersBlockingPolicy: FlutterPlatformViewGestureRecognizersBlockingPolicyWaitUntilTouchesEnded) } + + private static func methodHandler(_ call: FlutterMethodCall, result: FlutterResult) { + + let arguments = call.arguments as? NSDictionary + let id = arguments?["unityId"] as? Int ?? 0 + let unityId = "unity-id-\(id)" + + if call.method == "unity#dispose" { + GetUnityPlayerUtils().activeController?.dispose() + result(nil) + } else { + GetUnityPlayerUtils().activeController?.reattachView() + if call.method == "unity#isReady" { + result(GetUnityPlayerUtils().unityIsInitiallized()) + } else if call.method == "unity#isLoaded" { + let _isUnloaded = GetUnityPlayerUtils().isUnityLoaded() + result(_isUnloaded) + } else if call.method == "unity#createPlayer" { + GetUnityPlayerUtils().activeController?.startUnityIfNeeded() + result(nil) + } else if call.method == "unity#isPaused" { + let _isPaused = GetUnityPlayerUtils().isUnityPaused() + result(_isPaused) + } else if call.method == "unity#pausePlayer" { + GetUnityPlayerUtils().pause() + result(nil) + } else if call.method == "unity#postMessage" { + postMessage(call: call, result: result) + result(nil) + } else if call.method == "unity#resumePlayer" { + GetUnityPlayerUtils().resume() + result(nil) + } else if call.method == "unity#unloadPlayer" { + GetUnityPlayerUtils().unload() + result(nil) + } else if call.method == "unity#quitPlayer" { + GetUnityPlayerUtils().quit() + result(nil) + } else if call.method == "unity#waitForUnity" { + result(nil) + } else { + result(FlutterMethodNotImplemented) + } + } + } + + /// Post messages to unity from flutter + private static func postMessage(call: FlutterMethodCall, result: FlutterResult) { + guard let args = call.arguments else { + result("iOS could not recognize flutter arguments in method: (postMessage)") + return + } + + if let myArgs = args as? [String: Any], + let gObj = myArgs["gameObject"] as? String, + let method = myArgs["methodName"] as? String, + let message = myArgs["message"] as? String { + GetUnityPlayerUtils().postMessageToUnity(gameObject: gObj, unityMethodName: method, unityMessage: message) + result(nil) + } else { + result(FlutterError(code: "-1", message: "iOS could not extract " + + "flutter arguments in method: (postMessage)", details: nil)) + } + } } diff --git a/ios/Classes/UnityPlayerUtils.swift b/ios/Classes/UnityPlayerUtils.swift index 315e525a..ea554413 100755 --- a/ios/Classes/UnityPlayerUtils.swift +++ b/ios/Classes/UnityPlayerUtils.swift @@ -9,6 +9,7 @@ import Foundation import UnityFramework private var unity_warmed_up = false + // Hack to work around iOS SDK 4.3 linker problem // we need at least one __TEXT, __const section entry in main application .o files // to get this section emitted at right time and so avoid LC_ENCRYPTION_INFO size miscalculation @@ -51,10 +52,9 @@ func UnityFrameworkLoad() -> UnityFramework? { /*********************************** GLOBAL FUNCS & VARS START**************************************/ public var globalControllers: Array = [FLTUnityWidgetController]() - private var unityPlayerUtils: UnityPlayerUtils? = nil -func GetUnityPlayerUtils() -> UnityPlayerUtils { +func GetUnityPlayerUtils() -> UnityPlayerUtils { if unityPlayerUtils == nil { unityPlayerUtils = UnityPlayerUtils() } @@ -79,6 +79,9 @@ var sharedApplication: UIApplication? private var _isUnityReady = false private var _isUnityLoaded = false + public var controllers: Dictionary = [:] + public var activeController: FLTUnityWidgetController? + func initUnity() { if (self.unityIsInitiallized()) { self.ufw?.showUnityWindow() @@ -118,19 +121,19 @@ var sharedApplication: UIApplication? } NotificationCenter.default.addObserver(forName: NSNotification.Name("UnityReady"), object: nil, queue: OperationQueue.main, using: { note in - self._isUnityReady = true - completed(controller?.rootView) + self._isUnityReady = true + completed(controller?.rootView) }) DispatchQueue.main.async { -// if (sharedApplication == nil) { -// sharedApplication = UIApplication.shared -// } + // if (sharedApplication == nil) { + // sharedApplication = UIApplication.shared + // } - // Always keep Flutter window on top -// let flutterUIWindow = sharedApplication?.keyWindow -// flutterUIWindow?.windowLevel = UIWindow.Level(UIWindow.Level.normal.rawValue + 1) // Always keep Flutter window in top -// sharedApplication?.keyWindow?.windowLevel = UIWindow.Level(UIWindow.Level.normal.rawValue + 1) + // Always keep Flutter window on top + // let flutterUIWindow = sharedApplication?.keyWindow + // flutterUIWindow?.windowLevel = UIWindow.Level(UIWindow.Level.normal.rawValue + 1) // Always keep Flutter window in top + // sharedApplication?.keyWindow?.windowLevel = UIWindow.Level(UIWindow.Level.normal.rawValue + 1) self.initUnity() @@ -159,6 +162,10 @@ var sharedApplication: UIApplication? @objc public func unityDidUnload(_ notification: Notification!) { + notifyFlutter( + data: DataStreamEvent( + eventType: DataStreamEventTypes.OnUnityPlayerUnloaded, + data: true)) unregisterUnityListener() self.ufw = nil self._isUnityReady = false @@ -181,6 +188,7 @@ var sharedApplication: UIApplication? unityAppController?.applicationWillEnterForeground(application) } else if notification?.name == UIApplication.didBecomeActiveNotification { unityAppController?.applicationDidBecomeActive(application) + resume() } else if notification?.name == UIApplication.willTerminateNotification { unityAppController?.applicationWillTerminate(application) } else if notification?.name == UIApplication.didReceiveMemoryWarningNotification { @@ -235,6 +243,11 @@ var sharedApplication: UIApplication? func quit() { self.ufw?.quitApplication(0) self._isUnityLoaded = false + + GetUnityPlayerUtils().notifyFlutter( + data: DataStreamEvent( + eventType: DataStreamEventTypes.OnUnityPlayerQuited, + data: true)) } // Post message to unity @@ -248,12 +261,17 @@ var sharedApplication: UIApplication? /// the controller handler methods @objc func unityMessageHandlers(_ message: UnsafePointer?) { - for c in globalControllers { - if let strMsg = message { - c.handleMessage(message: String(utf8String: strMsg) ?? "") - } else { - c.handleMessage(message: "") - } + if let strMsg = message { + let msg = String(utf8String: strMsg) ?? "" + notifyFlutter( + data: DataStreamEvent( + eventType: DataStreamEventTypes.OnUnityMessage, + data: msg)) + } else { + notifyFlutter( + data: DataStreamEvent( + eventType: DataStreamEventTypes.OnUnityMessage, + data: "")) } } @@ -273,9 +291,20 @@ var sharedApplication: UIApplication? "isValid": validVal, ] - for c in globalControllers { - c.handleSceneChangeEvent(info: addObject) - } + notifyFlutter( + data: DataStreamEvent( + eventType: DataStreamEventTypes.OnUnitySceneLoaded, + data: addObject)) } } + + func notifyFlutter(data: DataStreamEvent) { + NotificationCenter + .default + .post( + name: .publishToFlutter, + object: nil, + userInfo: ["payload": data.toMap()] + ) + } } diff --git a/lib/flutter_unity_widget.dart b/lib/flutter_unity_widget.dart index fe2d8496..1eb31444 100755 --- a/lib/flutter_unity_widget.dart +++ b/lib/flutter_unity_widget.dart @@ -1,6 +1,9 @@ library flutter_unity_widget; export 'src/facade_controller.dart'; +export 'src/facade_flutter_unity_controller.dart' + if (dart.library.io) 'src/io/flutter_unity_controller.dart' + if (dart.library.html) 'src/io/flutter_unity_controller.dart'; export 'src/facade_widget.dart' if (dart.library.io) 'src/io/unity_widget.dart' if (dart.library.html) 'src/web/unity_widget.dart'; diff --git a/lib/src/facade_flutter_unity_controller.dart b/lib/src/facade_flutter_unity_controller.dart new file mode 100644 index 00000000..50093480 --- /dev/null +++ b/lib/src/facade_flutter_unity_controller.dart @@ -0,0 +1,137 @@ +import '../flutter_unity_widget.dart'; + +abstract class FlutterUnityController { + static dynamic webRegistrar; + + /// Method required for web initialization + static void registerWith(dynamic registrar) { + webRegistrar = registrar; + } + + var lastUnityId = 0; + + Future init() { + throw UnimplementedError('init() has not been implemented.'); + } + + static FlutterUnityController get instance { + throw UnimplementedError('instance has not been implemented.'); + } + + Stream get stream { + throw UnimplementedError('stream() has not been implemented.'); + } + + /// This method enables test mode where no api calls + /// gets to the native side + void enableTestMode() { + throw UnimplementedError('enableTestMode() has not been implemented.'); + } + + /// This method disables test mode where no api calls + /// gets to the native side + void disableTestMode() { + throw UnimplementedError('disableTestMode() has not been implemented.'); + } + + /// Checks to see if unity player is ready to be used + /// Returns `true` if unity player is ready. + Future? isReady() { + throw UnimplementedError('isReady() has not been implemented.'); + } + + /// Get the current pause state of the unity player + /// Returns `true` if unity player is paused. + Future? isPaused() { + throw UnimplementedError('isPaused() has not been implemented.'); + } + + /// Get the current load state of the unity player + /// Returns `true` if unity player is loaded. + Future? isLoaded() { + throw UnimplementedError('isLoaded() has not been implemented.'); + } + + /// Helper method to know if Unity has been put in background mode (WIP) unstable + /// Returns `true` if unity player is in background. + Future? inBackground() { + throw UnimplementedError('inBackground() has not been implemented.'); + } + + /// Creates a unity player if it's not already created. Please only call this if unity is not ready, + /// or is in unloaded state. Use [isLoaded] to check. + /// Returns `true` if unity player was created succesfully. + Future? create() { + throw UnimplementedError('create() has not been implemented.'); + } + + /// Post message to unity from flutter. This method takes in a string [message]. + /// The [gameObject] must match the name of an actual unity game object in a scene at runtime, and the [methodName], + /// must exist in a `MonoDevelop` `class` and also exposed as a method. [message] is an parameter taken by the method + /// + /// ```dart + /// postMessage("GameManager", "openScene", "ThirdScene") + /// ``` + Future? postMessage(String gameObject, methodName, message) { + throw UnimplementedError('postMessage() has not been implemented.'); + } + + /// Post message to unity from flutter. This method takes in a Json or map structure as the [message]. + /// The [gameObject] must match the name of an actual unity game object in a scene at runtime, and the [methodName], + /// must exist in a `MonoDevelop` `class` and also exposed as a method. [message] is an parameter taken by the method + /// + /// ```dart + /// postJsonMessage("GameManager", "openScene", {"buildIndex": 3, "name": "ThirdScene"}) + /// ``` + Future? postJsonMessage( + String gameObject, String methodName, Map message) { + throw UnimplementedError('postJsonMessage() has not been implemented.'); + } + + /// Pause the unity in-game player with this method + Future? pause() { + throw UnimplementedError('pause() has not been implemented.'); + } + + /// Resume the unity in-game player with this method idf it is in a paused state + Future? resume() { + throw UnimplementedError('resume() has not been implemented.'); + } + + /// Sometimes you want to open unity in it's own process and openInNativeProcess does just that. + /// It works for Android and iOS is WIP + Future? openInNativeProcess() { + throw UnimplementedError('openInNativeProcess() has not been implemented.'); + } + + /// Unloads unity player from th current process (Works on Android only for now) + /// iOS is WIP. For more information please read [Unity Docs](https://docs.unity3d.com/2020.2/Documentation/Manual/UnityasaLibrary.html) + Future? unload() { + throw UnimplementedError('unload() has not been implemented.'); + } + + /// Quits unity player. Note that this kills the current flutter process, thus quiting the app + Future? quit() { + throw UnimplementedError('quit() has not been implemented.'); + } + + Future dispose() { + throw UnimplementedError('dispose() has not been implemented.'); + } + + Stream onUnityMessage() { + throw UnimplementedError('onUnityMessage() has not been implemented.'); + } + + Stream onUnityUnloaded() { + throw UnimplementedError('onUnityUnloaded() has not been implemented.'); + } + + Stream onUnityCreated() { + throw UnimplementedError('onUnityCreated() has not been implemented.'); + } + + Stream onUnitySceneLoaded() { + throw UnimplementedError('onUnitySceneLoaded() has not been implemented.'); + } +} diff --git a/lib/src/facade_widget.dart b/lib/src/facade_widget.dart index d9b6e006..2f2d6ecf 100755 --- a/lib/src/facade_widget.dart +++ b/lib/src/facade_widget.dart @@ -8,7 +8,7 @@ import 'helpers/misc.dart'; class UnityWidget extends StatefulWidget { UnityWidget({ Key? key, - required this.onUnityCreated, + this.onUnityCreated, this.onUnityMessage, this.fullscreen = false, this.enablePlaceholder = false, @@ -16,6 +16,8 @@ class UnityWidget extends StatefulWidget { this.unloadOnDispose = false, this.printSetupLog = true, this.onUnityUnloaded, + this.onUnityAttached, + this.onUnityDetached, this.gestureRecognizers, this.placeholder, this.useAndroidViewSurface = false, @@ -24,10 +26,10 @@ class UnityWidget extends StatefulWidget { this.borderRadius = BorderRadius.zero, this.layoutDirection, this.hideStatus = false, - }); + }): super(key: key); ///Event fires when the unity player is created. - final UnityCreatedCallback onUnityCreated; + final UnityCreatedCallback? onUnityCreated; ///Event fires when the [UnityWidget] gets a message from unity. final UnityMessageCallback? onUnityMessage; @@ -38,6 +40,12 @@ class UnityWidget extends StatefulWidget { ///Event fires when the [UnityWidget] unity player gets unloaded. final UnityUnloadCallback? onUnityUnloaded; + ///Event fires when Unity player is attached to the widget + final UnityAttachedCallback? onUnityAttached; + + ///Event fires when Unity player is attached to the widget + final UnityDetachedCallback? onUnityDetached; + final Set>? gestureRecognizers; /// Set to true to force unity to fullscreen diff --git a/lib/src/helpers/events.dart b/lib/src/helpers/events.dart index 46f4b16b..ac6fd031 100755 --- a/lib/src/helpers/events.dart +++ b/lib/src/helpers/events.dart @@ -34,3 +34,11 @@ class UnityCreatedEvent extends UnityEvent { class UnityMessageEvent extends UnityEvent { UnityMessageEvent(int unityId, dynamic value) : super(unityId, value); } + +class UnityAttachedEvent extends UnityEvent { + UnityAttachedEvent(int unityId, void value) : super(unityId, value); +} + +class UnityDetachedEvent extends UnityEvent { + UnityDetachedEvent(int unityId, void value) : super(unityId, value); +} diff --git a/lib/src/helpers/misc.dart b/lib/src/helpers/misc.dart index dc9bb60a..c270bcd3 100644 --- a/lib/src/helpers/misc.dart +++ b/lib/src/helpers/misc.dart @@ -25,3 +25,7 @@ typedef void UnityMessageCallback(dynamic handler); typedef void UnitySceneChangeCallback(SceneLoaded? message); typedef void UnityUnloadCallback(); + +typedef void UnityAttachedCallback(); + +typedef void UnityDetachedCallback(); diff --git a/lib/src/helpers/types.dart b/lib/src/helpers/types.dart index 153548d0..e1fda499 100755 --- a/lib/src/helpers/types.dart +++ b/lib/src/helpers/types.dart @@ -17,10 +17,7 @@ class SceneLoaded { /// Deserializes [SceneLoaded] from a map. /// /// Mainly for internal use. - static SceneLoaded? fromMap(dynamic json) { - if (json == null) { - return null; - } + static SceneLoaded fromMap(dynamic json) { return SceneLoaded( name: json['name'], buildIndex: json['buildIndex'], @@ -29,3 +26,79 @@ class SceneLoaded { ); } } + +enum UnityEventTypes { + OnUnityViewCreated, + OnUnityPlayerReInitialize, + OnViewReattached, + OnUnityPlayerCreated, + OnUnityPlayerUnloaded, + OnUnityPlayerQuited, + OnUnitySceneLoaded, + OnUnityMessage, + OnViewAttached, + OnViewDetached, +} + +class EventDataPayload { + final UnityEventTypes eventType; + final dynamic data; + + EventDataPayload({required this.eventType, this.data}); + + /// Mainly for internal use when calling [CameraUpdate.newCameraPosition]. + dynamic toMap() => { + 'eventType': eventType.name, + 'data': data, + }; + + /// Deserializes [SceneLoaded] from a map. + /// + /// Mainly for internal use. + static EventDataPayload? fromMap(dynamic json) { + if (json == null) { + return null; + } + + final eventSourceType = json['eventType']; + var eventType = UnityEventTypes.OnUnityMessage; + + switch (eventSourceType) { + case 'OnUnityMessage': + eventType = UnityEventTypes.OnUnityMessage; + break; + case 'OnUnityPlayerCreated': + eventType = UnityEventTypes.OnUnityPlayerCreated; + break; + case 'OnUnityPlayerQuited': + eventType = UnityEventTypes.OnUnityPlayerQuited; + break; + case 'OnUnityPlayerReInitialize': + eventType = UnityEventTypes.OnUnityPlayerReInitialize; + break; + case 'OnUnityPlayerUnloaded': + eventType = UnityEventTypes.OnUnityPlayerUnloaded; + break; + case 'OnUnitySceneLoaded': + eventType = UnityEventTypes.OnUnitySceneLoaded; + break; + case 'OnUnityViewCreated': + eventType = UnityEventTypes.OnUnityViewCreated; + break; + case 'OnViewReattached': + eventType = UnityEventTypes.OnViewReattached; + break; + case 'OnViewAttached': + eventType = UnityEventTypes.OnViewAttached; + break; + case 'OnViewDetached': + eventType = UnityEventTypes.OnViewDetached; + break; + } + + return EventDataPayload( + eventType: eventType, + data: json['data'], + ); + } +} diff --git a/lib/src/io/device_method.dart b/lib/src/io/device_method.dart index 997614f0..e271ae52 100644 --- a/lib/src/io/device_method.dart +++ b/lib/src/io/device_method.dart @@ -1,22 +1,21 @@ import 'dart:async'; -import 'dart:convert'; import 'package:flutter/foundation.dart'; import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart'; import 'package:flutter/services.dart'; +import 'package:flutter_unity_widget/src/io/flutter_unity_platform.dart'; import 'package:stream_transform/stream_transform.dart'; import '../helpers/events.dart'; -import '../helpers/misc.dart'; import '../helpers/types.dart'; +import 'flutter_unity_controller.dart'; import 'unity_widget_platform.dart'; import 'windows_unity_widget_view.dart'; class MethodChannelUnityWidget extends UnityWidgetPlatform { - // Every method call passes the int unityId - late final Map _channels = {}; + var _unityId = 0; /// Set [UnityWidgetFlutterPlatform] to use [AndroidViewSurface] to build the Google Maps widget. /// @@ -28,41 +27,29 @@ class MethodChannelUnityWidget extends UnityWidgetPlatform { /// Defaults to false. bool useAndroidViewSurface = true; - /// Accesses the MethodChannel associated to the passed unityId. - MethodChannel channel(int unityId) { - MethodChannel? channel = _channels[unityId]; - if (channel == null) { - throw UnknownUnityIDError(unityId); - } - return channel; - } - - MethodChannel ensureChannelInitialized(int unityId) { - MethodChannel? channel = _channels[unityId]; - if (channel == null) { - channel = MethodChannel('plugin.xraph.com/unity_view_$unityId'); - - channel.setMethodCallHandler( - (MethodCall call) => _handleMethodCall(call, unityId)); - _channels[unityId] = channel; - } - return channel; + MethodChannelUnityWidget() { + _handleInternalStreaming(); } /// Initializes the platform interface with [id]. /// /// This method is called when the plugin is first initialized. @override - Future init(int unityId) { - MethodChannel channel = ensureChannelInitialized(unityId); - return channel.invokeMethod('unity#waitForUnity'); + Future init(int unityId) async { + _unityId = unityId; + FlutterUnityController.instance.lastUnityId = unityId; + await FlutterUnityController.instance.init(); } /// Dispose of the native resources. @override - Future dispose({int? unityId}) async { + void dispose({int? unityId}) { try { - if (unityId != null) await channel(unityId).invokeMethod('unity#dispose'); + if (unityId != null) { + FlutterUnityController.instance.lastUnityId = unityId; + FlutterUnityPlatform.instance.dispose(); + // _unityStreamController.close(); + } } catch (e) { // ignore } @@ -73,56 +60,78 @@ class MethodChannelUnityWidget extends UnityWidgetPlatform { // // It is a `broadcast` because multiple controllers will connect to // different stream views of this Controller. - final StreamController _unityStreamController = + StreamController _unityStreamController = StreamController.broadcast(); // Returns a filtered view of the events in the _controller, by unityId. Stream _events(int unityId) => _unityStreamController.stream.where((event) => event.unityId == unityId); - Future _handleMethodCall(MethodCall call, int unityId) async { - switch (call.method) { - case "events#onUnityMessage": - _unityStreamController.add(UnityMessageEvent(unityId, call.arguments)); - break; - case "events#onUnityUnloaded": - _unityStreamController.add(UnityLoadedEvent(unityId, call.arguments)); - break; - case "events#onUnitySceneLoaded": - _unityStreamController.add(UnitySceneLoadedEvent( - unityId, SceneLoaded.fromMap(call.arguments))); - break; - case "events#onUnityCreated": - _unityStreamController.add(UnityCreatedEvent(unityId, call.arguments)); - break; - default: - throw UnimplementedError("Unimplemented ${call.method} method"); + Future _handleInternalStreaming() async { + if (_unityStreamController.isClosed) { + _unityStreamController = StreamController.broadcast(); } + FlutterUnityController.instance.stream.listen((event) { + switch (event.eventType) { + case UnityEventTypes.OnUnityViewCreated: + _unityStreamController.add(UnityCreatedEvent(0, event.data)); + break; + case UnityEventTypes.OnUnityPlayerUnloaded: + _unityStreamController.add(UnityLoadedEvent(0, event.data)); + break; + case UnityEventTypes.OnUnityMessage: + _unityStreamController.add(UnityMessageEvent(_unityId, event.data)); + break; + case UnityEventTypes.OnUnitySceneLoaded: + _unityStreamController + .add(UnitySceneLoadedEvent(0, SceneLoaded.fromMap(event.data))); + break; + case UnityEventTypes.OnViewAttached: + _unityStreamController.add(UnityAttachedEvent( + int.parse((event.data as String).split('-').last), event.data)); + break; + case UnityEventTypes.OnViewDetached: + _unityStreamController.add(UnityDetachedEvent( + int.parse((event.data as String).split('-').last), event.data)); + break; + case UnityEventTypes.OnUnityPlayerReInitialize: + case UnityEventTypes.OnViewReattached: + case UnityEventTypes.OnUnityPlayerCreated: + case UnityEventTypes.OnUnityPlayerQuited: + // TODO: Handle this case. + break; + } + }); } @override Future isPaused({required int unityId}) async { - return await channel(unityId).invokeMethod('unity#isPaused'); + FlutterUnityController.instance.lastUnityId = unityId; + return await FlutterUnityController.instance.isPaused(); } @override Future isReady({required int unityId}) async { - return await channel(unityId).invokeMethod('unity#isReady'); + FlutterUnityController.instance.lastUnityId = unityId; + return await FlutterUnityController.instance.isReady(); } @override Future isLoaded({required int unityId}) async { - return await channel(unityId).invokeMethod('unity#isLoaded'); + FlutterUnityController.instance.lastUnityId = unityId; + return await FlutterUnityController.instance.isLoaded(); } @override Future inBackground({required int unityId}) async { - return await channel(unityId).invokeMethod('unity#inBackground'); + FlutterUnityController.instance.lastUnityId = unityId; + return await FlutterUnityController.instance.inBackground(); } @override Future createUnityPlayer({required int unityId}) async { - return await channel(unityId).invokeMethod('unity#createPlayer'); + FlutterUnityController.instance.lastUnityId = unityId; + return await FlutterUnityController.instance.create(); } @override @@ -145,6 +154,16 @@ class MethodChannelUnityWidget extends UnityWidgetPlatform { return _events(unityId).whereType(); } + @override + Stream onUnityAttached({required int unityId}) { + return _events(unityId).whereType(); + } + + @override + Stream onUnityDetached({required int unityId}) { + return _events(unityId).whereType(); + } + @override Widget buildViewWithTextDirection( int creationId, @@ -251,11 +270,9 @@ class MethodChannelUnityWidget extends UnityWidgetPlatform { required String methodName, required String message, }) async { - await channel(unityId).invokeMethod('unity#postMessage', { - 'gameObject': gameObject, - 'methodName': methodName, - 'message': message, - }); + FlutterUnityController.instance.lastUnityId = unityId; + return await FlutterUnityController.instance + .postMessage(gameObject, methodName, message); } @override @@ -265,35 +282,38 @@ class MethodChannelUnityWidget extends UnityWidgetPlatform { required String methodName, required Map message, }) async { - await channel(unityId).invokeMethod('unity#postMessage', { - 'gameObject': gameObject, - 'methodName': methodName, - 'message': json.encode(message), - }); + FlutterUnityController.instance.lastUnityId = unityId; + return await FlutterUnityController.instance.postJsonMessage( + gameObject, methodName, message as Map); } @override Future pausePlayer({required int unityId}) async { - await channel(unityId).invokeMethod('unity#pausePlayer'); + FlutterUnityController.instance.lastUnityId = unityId; + await FlutterUnityController.instance.pause(); } @override Future resumePlayer({required int unityId}) async { - await channel(unityId).invokeMethod('unity#resumePlayer'); + FlutterUnityController.instance.lastUnityId = unityId; + return await FlutterUnityController.instance.resume(); } @override Future openInNativeProcess({required int unityId}) async { - await channel(unityId).invokeMethod('unity#openInNativeProcess'); + FlutterUnityController.instance.lastUnityId = unityId; + return await FlutterUnityController.instance.openInNativeProcess(); } @override Future unloadPlayer({required int unityId}) async { - await channel(unityId).invokeMethod('unity#unloadPlayer'); + FlutterUnityController.instance.lastUnityId = unityId; + return await FlutterUnityController.instance.unload(); } @override Future quitPlayer({required int unityId}) async { - await channel(unityId).invokeMethod('unity#quitPlayer'); + FlutterUnityController.instance.lastUnityId = unityId; + return await FlutterUnityController.instance.quit(); } } diff --git a/lib/src/io/flutter_unity_controller.dart b/lib/src/io/flutter_unity_controller.dart new file mode 100644 index 00000000..ff4b5e29 --- /dev/null +++ b/lib/src/io/flutter_unity_controller.dart @@ -0,0 +1,220 @@ +import 'dart:async'; + +import '../helpers/events.dart'; +import '../helpers/types.dart'; +import 'flutter_unity_platform.dart'; + +class FlutterUnityController { + FlutterUnityController._() {} + + static FlutterUnityController? _instance = null; + + /// Returns an instance using the default [Fitness]. + static FlutterUnityController get instance { + return FlutterUnityController.instanceFor(); + } + + /// Returns an instance using a specified [Fitness]. + factory FlutterUnityController.instanceFor() { + if (_instance == null) { + return _instance = FlutterUnityController._(); + } + return _instance!; + } + + /// The unityId for this controller + int lastUnityId = 0; + bool _testMode = false; + + /// used for cancel the subscription + StreamSubscription? _onUnityMessageSub, + _onUnitySceneLoadedSub, + _onUnityUnloadedSub; + // StreamSubscription? _onDataEventSub; + + Future init() { + return FlutterUnityPlatform.instance.init(); + } + + Stream get stream { + return FlutterUnityPlatform.instance.stream; + } + + /// This method enables test mode where no api calls + /// gets to the native side + void enableTestMode() { + _testMode = true; + } + + /// This method disables test mode where no api calls + /// gets to the native side + void disableTestMode() { + _testMode = false; + } + + /// Checks to see if unity player is ready to be used + /// Returns `true` if unity player is ready. + Future? isReady() { + if (_testMode) { + return Future.value(true); + } + return FlutterUnityPlatform.instance.isReady(); + } + + /// Get the current pause state of the unity player + /// Returns `true` if unity player is paused. + Future? isPaused() { + if (_testMode) { + return Future.value(false); + } + return FlutterUnityPlatform.instance.isPaused(); + } + + /// Get the current load state of the unity player + /// Returns `true` if unity player is loaded. + Future? isLoaded() { + if (_testMode) { + return Future.value(true); + } + return FlutterUnityPlatform.instance.isLoaded(); + } + + /// Helper method to know if Unity has been put in background mode (WIP) unstable + /// Returns `true` if unity player is in background. + Future? inBackground() { + if (_testMode) { + return Future.value(false); + } + return FlutterUnityPlatform.instance.inBackground(); + } + + /// Creates a unity player if it's not already created. Please only call this if unity is not ready, + /// or is in unloaded state. Use [isLoaded] to check. + /// Returns `true` if unity player was created succesfully. + Future? create() { + if (_testMode) { + return Future.value(true); + } + return FlutterUnityPlatform.instance.createUnityPlayer(); + } + + /// Post message to unity from flutter. This method takes in a string [message]. + /// The [gameObject] must match the name of an actual unity game object in a scene at runtime, and the [methodName], + /// must exist in a `MonoDevelop` `class` and also exposed as a method. [message] is an parameter taken by the method + /// + /// ```dart + /// postMessage("GameManager", "openScene", "ThirdScene") + /// ``` + Future? postMessage(String gameObject, methodName, message) { + if (_testMode) { + return Future.value(null); + } + + return FlutterUnityPlatform.instance.postMessage( + gameObject: gameObject, + methodName: methodName, + message: message, + ); + } + + /// Post message to unity from flutter. This method takes in a Json or map structure as the [message]. + /// The [gameObject] must match the name of an actual unity game object in a scene at runtime, and the [methodName], + /// must exist in a `MonoDevelop` `class` and also exposed as a method. [message] is an parameter taken by the method + /// + /// ```dart + /// postJsonMessage("GameManager", "openScene", {"buildIndex": 3, "name": "ThirdScene"}) + /// ``` + Future? postJsonMessage( + String gameObject, String methodName, Map message) { + if (_testMode) { + return Future.value(null); + } + + return FlutterUnityPlatform.instance.postJsonMessage( + gameObject: gameObject, + methodName: methodName, + message: message, + ); + } + + /// Pause the unity in-game player with this method + Future? pause() { + if (_testMode) { + return Future.value(null); + } + + return FlutterUnityPlatform.instance.pausePlayer(); + } + + /// Resume the unity in-game player with this method idf it is in a paused state + Future? resume() { + if (_testMode) { + return Future.value(null); + } + + return FlutterUnityPlatform.instance.resumePlayer(); + } + + /// Sometimes you want to open unity in it's own process and openInNativeProcess does just that. + /// It works for Android and iOS is WIP + Future? openInNativeProcess() { + if (_testMode) { + return Future.value(null); + } + + return FlutterUnityPlatform.instance.openInNativeProcess(); + } + + /// Unloads unity player from th current process (Works on Android only for now) + /// iOS is WIP. For more information please read [Unity Docs](https://docs.unity3d.com/2020.2/Documentation/Manual/UnityasaLibrary.html) + Future? unload() { + if (_testMode) { + return Future.value(null); + } + + return FlutterUnityPlatform.instance.unloadPlayer(); + } + + /// Quits unity player. Note that this kills the current flutter process, thus quiting the app + Future? quit() { + if (_testMode) { + return Future.value(null); + } + + return FlutterUnityPlatform.instance.quitPlayer(); + } + + Stream onUnityMessage() { + return FlutterUnityPlatform.instance.onUnityMessage(); + } + + Stream onUnityUnloaded() { + return FlutterUnityPlatform.instance.onUnityUnloaded(); + } + + Stream onUnityCreated() { + return FlutterUnityPlatform.instance.onUnityCreated(); + } + + Stream onUnitySceneLoaded() { + return FlutterUnityPlatform.instance.onUnitySceneLoaded(); + } + + /// cancel the subscriptions when dispose called + void _cancelSubscriptions() { + _onUnityMessageSub?.cancel(); + _onUnitySceneLoadedSub?.cancel(); + _onUnityUnloadedSub?.cancel(); + + _onUnityMessageSub = null; + _onUnitySceneLoadedSub = null; + _onUnityUnloadedSub = null; + } + + Future dispose() async { + _cancelSubscriptions(); + if (!_testMode) { + await FlutterUnityPlatform.instance.dispose(); + } + } +} diff --git a/lib/src/io/flutter_unity_device_method.dart b/lib/src/io/flutter_unity_device_method.dart new file mode 100644 index 00000000..d91e214b --- /dev/null +++ b/lib/src/io/flutter_unity_device_method.dart @@ -0,0 +1,232 @@ +import 'dart:async'; +import 'dart:convert'; + +import 'package:flutter/services.dart'; +import 'package:flutter_unity_widget/flutter_unity_widget.dart'; +import 'package:stream_transform/stream_transform.dart'; + +import 'flutter_unity_platform.dart'; + +const String _channelPrefix = 'plugin.xraph.com'; +const String _streamChannelId = '$_channelPrefix/stream_channel'; +const MethodChannel _channel = MethodChannel('$_channelPrefix/base_channel'); + +class FlutterUnityMethodChannel extends FlutterUnityPlatform { + /// Accesses the MethodChannel associated to the passed unityId. + MethodChannel get channel { + return _channel; + } + + static late final StreamController + _unityDataStreamController; + + // The controller we need to broadcast the different events coming + // from handleMethodCall. + // + // It is a `broadcast` because multiple controllers will connect to + // different stream views of this Controller. + final StreamController _unityStreamController = + StreamController.broadcast(); + + // Returns a filtered view of the events in the _controller, by unityId. + Stream get _events => _unityStreamController.stream; + + /// *************************** EVENT CHANNELS *******************************/ + + final dataStreamChannel = EventChannel(_streamChannelId, _channel.codec); + + StreamController _createBroadcastStream() { + return StreamController.broadcast(); + } + + /// Initializes the platform interface with [id]. + /// + /// This method is called when the plugin is first initialized. + @override + Future init() { + return channel.invokeMethod('unity#waitForUnity'); + } + + FlutterUnityMethodChannel() : super() { + // Create a app instance broadcast stream for native listener events + _unityDataStreamController = _createBroadcastStream(); + _listenForMessages(); + } + + var lastUnityId = 0; + + void _listenForMessages() { + dataStreamChannel.receiveBroadcastStream().listen( + (arguments) { + final payload = EventDataPayload.fromMap(arguments)!; + switch (payload.eventType) { + case UnityEventTypes.OnUnityViewCreated: + _unityStreamController.add(UnityCreatedEvent(0, payload.data)); + break; + case UnityEventTypes.OnUnityPlayerUnloaded: + _unityStreamController.add(UnityLoadedEvent(0, payload.data)); + break; + case UnityEventTypes.OnUnityMessage: + _unityStreamController.add(UnityMessageEvent(0, payload.data)); + break; + case UnityEventTypes.OnUnitySceneLoaded: + _unityStreamController.add( + UnitySceneLoadedEvent(0, SceneLoaded.fromMap(payload.data))); + break; + case UnityEventTypes.OnUnityPlayerReInitialize: + case UnityEventTypes.OnViewReattached: + case UnityEventTypes.OnUnityPlayerCreated: + case UnityEventTypes.OnUnityPlayerQuited: + break; + case UnityEventTypes.OnViewAttached: + _unityStreamController.add(UnityAttachedEvent( + int.parse((payload.data as String).split('-').last), + payload.data)); + break; + case UnityEventTypes.OnViewDetached: + _unityStreamController.add(UnityDetachedEvent( + int.parse((payload.data as String).split('-').last), + payload.data)); + break; + } + + _unityDataStreamController.add(EventDataPayload.fromMap(arguments)!); + }, + ); + } + + /// Dispose of the native resources. + @override + Future dispose() async { + try { + await channel.invokeMethod('unity#dispose', { + 'unityId': lastUnityId, + }); + } catch (e) { + // ignore + } + } + + @override + Future isPaused() async { + return await channel.invokeMethod('unity#isPaused', { + 'unityId': lastUnityId, + }); + } + + @override + Future isReady() async { + return await channel.invokeMethod('unity#isReady', { + 'unityId': lastUnityId, + }); + } + + @override + Future isLoaded() async { + return await channel.invokeMethod('unity#isLoaded', { + 'unityId': lastUnityId, + }); + } + + @override + Future inBackground() async { + return await channel.invokeMethod('unity#inBackground', { + 'unityId': lastUnityId, + }); + } + + @override + Future createUnityPlayer() async { + return await channel.invokeMethod('unity#createPlayer', { + 'unityId': lastUnityId, + }); + } + + @override + Stream onUnityMessage() { + return _events.whereType(); + } + + @override + Stream get stream { + return _unityDataStreamController.stream; + } + + @override + Stream onUnityUnloaded() { + return _events.whereType(); + } + + @override + Stream onUnityCreated() { + return _events.whereType(); + } + + @override + Stream onUnitySceneLoaded() { + return _events.whereType(); + } + + @override + Future postMessage({ + required String gameObject, + required String methodName, + required String message, + }) async { + await channel.invokeMethod('unity#postMessage', { + 'gameObject': gameObject, + 'methodName': methodName, + 'message': message, + 'unityId': lastUnityId, + }); + } + + @override + Future postJsonMessage({ + required String gameObject, + required String methodName, + required Map message, + }) async { + await channel.invokeMethod('unity#postMessage', { + 'gameObject': gameObject, + 'methodName': methodName, + 'message': json.encode(message), + 'unityId': lastUnityId, + }); + } + + @override + Future pausePlayer() async { + await channel.invokeMethod('unity#pausePlayer', { + 'unityId': lastUnityId, + }); + } + + @override + Future resumePlayer() async { + await channel.invokeMethod('unity#resumePlayer', { + 'unityId': lastUnityId, + }); + } + + @override + Future openInNativeProcess() async { + await channel.invokeMethod('unity#openInNativeProcess', { + 'unityId': lastUnityId, + }); + } + + @override + Future unloadPlayer() async { + await channel.invokeMethod('unity#unloadPlayer', { + 'unityId': lastUnityId, + }); + } + + @override + Future quitPlayer() async { + await channel.invokeMethod('unity#quitPlayer', { + 'unityId': lastUnityId, + }); + } +} diff --git a/lib/src/io/flutter_unity_platform.dart b/lib/src/io/flutter_unity_platform.dart new file mode 100644 index 00000000..408871d8 --- /dev/null +++ b/lib/src/io/flutter_unity_platform.dart @@ -0,0 +1,116 @@ +import 'package:plugin_platform_interface/plugin_platform_interface.dart'; + +import '../helpers/events.dart'; +import '../helpers/types.dart'; +import 'flutter_unity_device_method.dart'; + +abstract class FlutterUnityPlatform extends PlatformInterface { + /// Constructs a UnityViewFlutterPlatform. + FlutterUnityPlatform() : super(token: _token); + + static final Object _token = Object(); + static FlutterUnityPlatform _instance = FlutterUnityMethodChannel(); + + /// The default instance of [FlutterUnityPlatform] to use. + /// + /// Defaults to [MethodChannelUnityWidgetFlutter]. + static FlutterUnityPlatform get instance => _instance; + + /// Platform-specific plugins should set this with their own platform-specific + /// class that extends [FlutterUnityPlatform] when they register themselves. + static set instance(FlutterUnityPlatform instance) { + PlatformInterface.verifyToken(instance, _token); + _instance = instance; + } + + var lastUnityId = 0; + + /// /// Initializes the platform interface with [id]. + /// + /// This method is called when the plugin is first initialized. + Future init() { + throw UnimplementedError('init() has not been implemented.'); + } + + Stream get stream { + throw UnimplementedError('stream() has not been implemented.'); + } + + Future isReady() async { + throw UnimplementedError('init() has not been implemented.'); + } + + Future isPaused() async { + throw UnimplementedError('isPaused() has not been implemented.'); + } + + Future isLoaded() async { + throw UnimplementedError('isLoaded() has not been implemented.'); + } + + Future inBackground() async { + throw UnimplementedError('inBackground() has not been implemented.'); + } + + Future createUnityPlayer() async { + throw UnimplementedError('createUnityPlayer() has not been implemented.'); + } + + Future postMessage({ + required String gameObject, + required String methodName, + required String message, + }) { + throw UnimplementedError('postMessage() has not been implemented.'); + } + + Future postJsonMessage({ + required String gameObject, + required String methodName, + required Map message, + }) { + throw UnimplementedError('postJsonMessage() has not been implemented.'); + } + + Future pausePlayer() async { + throw UnimplementedError('pausePlayer() has not been implemented.'); + } + + Future resumePlayer() async { + throw UnimplementedError('resumePlayer() has not been implemented.'); + } + + /// Opens unity in it's own activity. Android only. + Future openInNativeProcess() async { + throw UnimplementedError('openInNativeProcess() has not been implemented.'); + } + + Future unloadPlayer() async { + throw UnimplementedError('unloadPlayer() has not been implemented.'); + } + + Future quitPlayer() async { + throw UnimplementedError('quitPlayer() has not been implemented.'); + } + + Stream onUnityMessage() { + throw UnimplementedError('onUnityMessage() has not been implemented.'); + } + + Stream onUnityUnloaded() { + throw UnimplementedError('onUnityUnloaded() has not been implemented.'); + } + + Stream onUnityCreated() { + throw UnimplementedError('onUnityUnloaded() has not been implemented.'); + } + + Stream onUnitySceneLoaded() { + throw UnimplementedError('onUnitySceneLoaded() has not been implemented.'); + } + + /// Dispose of whatever resources the `unityId` is holding on to. + Future dispose() { + throw UnimplementedError('dispose() has not been implemented.'); + } +} diff --git a/lib/src/io/mobile_unity_widget_controller.dart b/lib/src/io/mobile_unity_widget_controller.dart index 0603969e..64b3dee4 100644 --- a/lib/src/io/mobile_unity_widget_controller.dart +++ b/lib/src/io/mobile_unity_widget_controller.dart @@ -1,16 +1,12 @@ import 'dart:async'; -import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; +import 'package:flutter_unity_widget/flutter_unity_widget.dart'; -import '../facade_controller.dart'; -import '../helpers/events.dart'; -import 'device_method.dart'; import 'unity_widget.dart'; import 'unity_widget_platform.dart'; class MobileUnityWidgetController extends UnityWidgetController { - final MobileUnityWidgetState _unityWidgetState; + final MobileUnityWidgetState unityWidgetState; /// The unityId for this controller final int unityId; @@ -18,60 +14,81 @@ class MobileUnityWidgetController extends UnityWidgetController { /// used for cancel the subscription StreamSubscription? _onUnityMessageSub, _onUnitySceneLoadedSub, - _onUnityUnloadedSub; - - MobileUnityWidgetController._(this._unityWidgetState, - {required this.unityId}) { + _onUnityUnloadedSub, + _onUnityAttachedSub, + _onUnityDetachedSub; + + MobileUnityWidgetController._( + this.unityWidgetState, { + required this.unityId, + }) { _connectStreams(unityId); } /// Initialize [UnityWidgetController] with [id] /// Mainly for internal use when instantiating a [UnityWidgetController] passed - /// in [UnityWidget.onUnityCreated] callback. + /// in UnityWidget.onUnityCreated] callback. static Future init( int id, MobileUnityWidgetState unityWidgetState) async { await UnityWidgetPlatform.instance.init(id); - return MobileUnityWidgetController._( + FlutterUnityController.instance.lastUnityId = id; + var controller = MobileUnityWidgetController._( unityWidgetState, unityId: id, ); - } - - @visibleForTesting - MethodChannel? get channel { - if (UnityWidgetPlatform.instance is MethodChannelUnityWidget) { - return (UnityWidgetPlatform.instance as MethodChannelUnityWidget) - .channel(unityId); - } - return null; + await UnityWidgetPlatform.instance.init(id); + return controller; } void _connectStreams(int unityId) { - if (_unityWidgetState.widget.onUnityMessage != null) { + if (unityWidgetState.widget.onUnityMessage != null) { _onUnityMessageSub = UnityWidgetPlatform.instance .onUnityMessage(unityId: unityId) - .listen((UnityMessageEvent e) => - _unityWidgetState.widget.onUnityMessage!(e.value)); + .listen((UnityMessageEvent e) { + if (!unityWidgetState.mounted) return; + unityWidgetState.widget.onUnityMessage!(e.value); + }); } - if (_unityWidgetState.widget.onUnitySceneLoaded != null) { + if (unityWidgetState.widget.onUnitySceneLoaded != null) { _onUnitySceneLoadedSub = UnityWidgetPlatform.instance .onUnitySceneLoaded(unityId: unityId) - .listen((UnitySceneLoadedEvent e) => - _unityWidgetState.widget.onUnitySceneLoaded!(e.value)); + .listen((UnitySceneLoadedEvent e) { + if (!unityWidgetState.mounted) return; + unityWidgetState.widget.onUnitySceneLoaded!(e.value); + }); } - if (_unityWidgetState.widget.onUnityUnloaded != null) { + if (unityWidgetState.widget.onUnityUnloaded != null) { _onUnityUnloadedSub = UnityWidgetPlatform.instance .onUnityUnloaded(unityId: unityId) - .listen((_) => _unityWidgetState.widget.onUnityUnloaded!()); + .listen((_) { + if (!unityWidgetState.mounted) return; + unityWidgetState.widget.onUnityUnloaded!(); + }); + } + + if (unityWidgetState.widget.onUnityAttached != null) { + _onUnityAttachedSub = UnityWidgetPlatform.instance + .onUnityAttached(unityId: unityId) + .listen((_) { + unityWidgetState.widget.onUnityAttached!(); + }); + } + + if (unityWidgetState.widget.onUnityDetached != null) { + _onUnityDetachedSub = UnityWidgetPlatform.instance + .onUnityDetached(unityId: unityId) + .listen((_) { + unityWidgetState.widget.onUnityDetached!(); + }); } } /// Checks to see if unity player is ready to be used /// Returns `true` if unity player is ready. Future? isReady() { - if (!_unityWidgetState.widget.enablePlaceholder) { + if (!unityWidgetState.widget.enablePlaceholder) { return UnityWidgetPlatform.instance.isReady(unityId: unityId); } return null; @@ -80,7 +97,7 @@ class MobileUnityWidgetController extends UnityWidgetController { /// Get the current pause state of the unity player /// Returns `true` if unity player is paused. Future? isPaused() { - if (!_unityWidgetState.widget.enablePlaceholder) { + if (!unityWidgetState.widget.enablePlaceholder) { return UnityWidgetPlatform.instance.isPaused(unityId: unityId); } return null; @@ -89,7 +106,7 @@ class MobileUnityWidgetController extends UnityWidgetController { /// Get the current load state of the unity player /// Returns `true` if unity player is loaded. Future? isLoaded() { - if (!_unityWidgetState.widget.enablePlaceholder) { + if (!unityWidgetState.widget.enablePlaceholder) { return UnityWidgetPlatform.instance.isLoaded(unityId: unityId); } return null; @@ -98,7 +115,7 @@ class MobileUnityWidgetController extends UnityWidgetController { /// Helper method to know if Unity has been put in background mode (WIP) unstable /// Returns `true` if unity player is in background. Future? inBackground() { - if (!_unityWidgetState.widget.enablePlaceholder) { + if (!unityWidgetState.widget.enablePlaceholder) { return UnityWidgetPlatform.instance.inBackground(unityId: unityId); } return null; @@ -108,7 +125,7 @@ class MobileUnityWidgetController extends UnityWidgetController { /// or is in unloaded state. Use [isLoaded] to check. /// Returns `true` if unity player was created succesfully. Future? create() { - if (!_unityWidgetState.widget.enablePlaceholder) { + if (!unityWidgetState.widget.enablePlaceholder) { return UnityWidgetPlatform.instance.createUnityPlayer(unityId: unityId); } return null; @@ -122,7 +139,7 @@ class MobileUnityWidgetController extends UnityWidgetController { /// postMessage("GameManager", "openScene", "ThirdScene") /// ``` Future? postMessage(String gameObject, methodName, message) { - if (!_unityWidgetState.widget.enablePlaceholder) { + if (!unityWidgetState.widget.enablePlaceholder) { return UnityWidgetPlatform.instance.postMessage( unityId: unityId, gameObject: gameObject, @@ -141,8 +158,11 @@ class MobileUnityWidgetController extends UnityWidgetController { /// postJsonMessage("GameManager", "openScene", {"buildIndex": 3, "name": "ThirdScene"}) /// ``` Future? postJsonMessage( - String gameObject, String methodName, Map message) { - if (!_unityWidgetState.widget.enablePlaceholder) { + String gameObject, + String methodName, + Map message, + ) { + if (!unityWidgetState.widget.enablePlaceholder) { return UnityWidgetPlatform.instance.postJsonMessage( unityId: unityId, gameObject: gameObject, @@ -155,7 +175,7 @@ class MobileUnityWidgetController extends UnityWidgetController { /// Pause the unity in-game player with this method Future? pause() { - if (!_unityWidgetState.widget.enablePlaceholder) { + if (!unityWidgetState.widget.enablePlaceholder) { return UnityWidgetPlatform.instance.pausePlayer(unityId: unityId); } return null; @@ -163,7 +183,7 @@ class MobileUnityWidgetController extends UnityWidgetController { /// Resume the unity in-game player with this method idf it is in a paused state Future? resume() { - if (!_unityWidgetState.widget.enablePlaceholder) { + if (!unityWidgetState.widget.enablePlaceholder) { return UnityWidgetPlatform.instance.resumePlayer(unityId: unityId); } return null; @@ -172,7 +192,7 @@ class MobileUnityWidgetController extends UnityWidgetController { /// Sometimes you want to open unity in it's own process and openInNativeProcess does just that. /// It works for Android and iOS is WIP Future? openInNativeProcess() { - if (!_unityWidgetState.widget.enablePlaceholder) { + if (!unityWidgetState.widget.enablePlaceholder) { return UnityWidgetPlatform.instance.openInNativeProcess(unityId: unityId); } return null; @@ -181,7 +201,7 @@ class MobileUnityWidgetController extends UnityWidgetController { /// Unloads unity player from th current process (Works on Android only for now) /// iOS is WIP. For more information please read [Unity Docs](https://docs.unity3d.com/2020.2/Documentation/Manual/UnityasaLibrary.html) Future? unload() { - if (!_unityWidgetState.widget.enablePlaceholder) { + if (!unityWidgetState.widget.enablePlaceholder) { return UnityWidgetPlatform.instance.unloadPlayer(unityId: unityId); } return null; @@ -189,7 +209,7 @@ class MobileUnityWidgetController extends UnityWidgetController { /// Quits unity player. Note that this kills the current flutter process, thus quiting the app Future? quit() { - if (!_unityWidgetState.widget.enablePlaceholder) { + if (!unityWidgetState.widget.enablePlaceholder) { return UnityWidgetPlatform.instance.quitPlayer(unityId: unityId); } return null; @@ -200,10 +220,14 @@ class MobileUnityWidgetController extends UnityWidgetController { _onUnityMessageSub?.cancel(); _onUnitySceneLoadedSub?.cancel(); _onUnityUnloadedSub?.cancel(); + _onUnityAttachedSub?.cancel(); + _onUnityDetachedSub?.cancel(); _onUnityMessageSub = null; _onUnitySceneLoadedSub = null; _onUnityUnloadedSub = null; + _onUnityAttachedSub = null; + _onUnityDetachedSub = null; } void dispose() { diff --git a/lib/src/io/unity_widget.dart b/lib/src/io/unity_widget.dart index 508ccf06..05b0c7a5 100644 --- a/lib/src/io/unity_widget.dart +++ b/lib/src/io/unity_widget.dart @@ -53,7 +53,7 @@ typedef MobileUnityWidgetState = _UnityWidgetState; class UnityWidget extends StatefulWidget { UnityWidget({ Key? key, - required this.onUnityCreated, + this.onUnityCreated, this.onUnityMessage, this.fullscreen = false, this.enablePlaceholder = false, @@ -61,6 +61,8 @@ class UnityWidget extends StatefulWidget { this.unloadOnDispose = false, this.printSetupLog = true, this.onUnityUnloaded, + this.onUnityAttached, + this.onUnityDetached, this.gestureRecognizers, this.placeholder, this.useAndroidViewSurface = false, @@ -70,10 +72,10 @@ class UnityWidget extends StatefulWidget { this.layoutDirection, this.hideStatus = false, this.webUrl, - }); + }): super(key: key); ///Event fires when the unity player is created. - final UnityCreatedCallback onUnityCreated; + final UnityCreatedCallback? onUnityCreated; /// WebGL url source. final String? webUrl; @@ -87,6 +89,12 @@ class UnityWidget extends StatefulWidget { ///Event fires when the [UnityWidget] unity player gets unloaded. final UnityUnloadCallback? onUnityUnloaded; + ///Event fires when Unity player is attached to the widget + final UnityAttachedCallback? onUnityAttached; + + ///Event fires when Unity player is detached to the widget + final UnityDetachedCallback? onUnityDetached; + final Set>? gestureRecognizers; /// Set to true to force unity to fullscreen @@ -147,6 +155,7 @@ class _UnityWidgetState extends State { @override Future dispose() async { + widget.onUnityDetached?.call(); if (!kIsWeb) { if (_nextUnityCreationId > 0) --_nextUnityCreationId; } @@ -190,7 +199,10 @@ class _UnityWidgetState extends State { Future _onPlatformViewCreated(int id) async { final controller = await MobileUnityWidgetController.init(id, this); _controller = controller; - widget.onUnityCreated(controller); + + if (widget.onUnityCreated != null) { + widget.onUnityCreated!(controller); + } if (widget.printSetupLog) { log('*********************************************'); diff --git a/lib/src/io/unity_widget_platform.dart b/lib/src/io/unity_widget_platform.dart index fb1de15c..4731d620 100644 --- a/lib/src/io/unity_widget_platform.dart +++ b/lib/src/io/unity_widget_platform.dart @@ -107,6 +107,14 @@ abstract class UnityWidgetPlatform extends PlatformInterface { throw UnimplementedError('onUnitySceneLoaded() has not been implemented.'); } + Stream onUnityAttached({required int unityId}) { + throw UnimplementedError('onUnityAttached() has not been implemented.'); + } + + Stream onUnityDetached({required int unityId}) { + throw UnimplementedError('onUnityDetached() has not been implemented.'); + } + /// Dispose of whatever resources the `unityId` is holding on to. void dispose({required int unityId}) { throw UnimplementedError('dispose() has not been implemented.'); diff --git a/lib/src/web/unity_widget.dart b/lib/src/web/unity_widget.dart index 5593aaf4..6756102d 100755 --- a/lib/src/web/unity_widget.dart +++ b/lib/src/web/unity_widget.dart @@ -12,7 +12,7 @@ import 'web_unity_widget_view.dart'; class UnityWidget extends StatefulWidget { UnityWidget({ Key? key, - required this.onUnityCreated, + this.onUnityCreated, this.onUnityMessage, this.fullscreen = false, this.enablePlaceholder = false, @@ -31,7 +31,7 @@ class UnityWidget extends StatefulWidget { }); ///Event fires when the unity player is created. - final UnityCreatedCallback onUnityCreated; + final UnityCreatedCallback? onUnityCreated; ///Event fires when the [UnityWidget] gets a message from unity. final UnityMessageCallback? onUnityMessage; @@ -120,7 +120,9 @@ class _UnityWidgetState extends State { Future _onPlatformViewCreated() async { final controller = await WebUnityWidgetController.init(0, this); _controller = controller; - widget.onUnityCreated(controller); + if (widget.onUnityCreated != null) { + widget.onUnityCreated!(controller); + } if (widget.printSetupLog) { log('*********************************************'); diff --git a/pubspec.yaml b/pubspec.yaml index d7b2c03d..7050bcd9 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_unity_widget description: Flutter Unity 3D widget for embedding Unity game scenes in flutter. This library now supports Unity as a Library. -version: 2022.2.0 +version: 2022.3.0-alpha1 #authors: # - Rex Raphael # - Thomas Stockx