Commit 9b0392eb 王帅

ZAA_Launch png

1 个父辈 bd4062ee
正在显示 854 个修改的文件 包含 42 行增加1123 行删除
......@@ -681,32 +681,10 @@ MonoBehaviour:
m_CharacterLimit: 100
m_OnEndEdit:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 1879748053}
m_MethodName: inputEnd
m_Mode: 5
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
m_Calls: []
m_OnValueChanged:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 1879748053}
m_MethodName: inputChange
m_Mode: 5
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
m_Calls: []
m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_CustomCaretColor: 0
m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412}
......@@ -841,7 +819,6 @@ GameObject:
- component: {fileID: 336116727}
- component: {fileID: 336116729}
- component: {fileID: 336116728}
- component: {fileID: 336116730}
m_Layer: 5
m_Name: Text
m_TagString: Untagged
......@@ -909,103 +886,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 336116726}
m_CullTransparentMesh: 0
--- !u!114 &336116730
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 336116726}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 336116728}
m_TextViewport: {fileID: 0}
m_TextComponent: {fileID: 0}
m_Placeholder: {fileID: 0}
m_VerticalScrollbar: {fileID: 0}
m_VerticalScrollbarEventHandler: {fileID: 0}
m_LayoutGroup: {fileID: 0}
m_ScrollSensitivity: 1
m_ContentType: 0
m_InputType: 0
m_AsteriskChar: 42
m_KeyboardType: 0
m_LineType: 0
m_HideMobileInput: 0
m_HideSoftKeyboard: 0
m_CharacterValidation: 0
m_RegexValue:
m_GlobalPointSize: 14
m_CharacterLimit: 0
m_OnEndEdit:
m_PersistentCalls:
m_Calls: []
m_OnSubmit:
m_PersistentCalls:
m_Calls: []
m_OnSelect:
m_PersistentCalls:
m_Calls: []
m_OnDeselect:
m_PersistentCalls:
m_Calls: []
m_OnTextSelection:
m_PersistentCalls:
m_Calls: []
m_OnEndTextSelection:
m_PersistentCalls:
m_Calls: []
m_OnValueChanged:
m_PersistentCalls:
m_Calls: []
m_OnTouchScreenKeyboardStatusChanged:
m_PersistentCalls:
m_Calls: []
m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_CustomCaretColor: 0
m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412}
m_Text:
m_CaretBlinkRate: 0.85
m_CaretWidth: 1
m_ReadOnly: 0
m_RichText: 1
m_GlobalFontAsset: {fileID: 0}
m_OnFocusSelectAll: 1
m_ResetOnDeActivation: 1
m_RestoreOriginalTextOnEscape: 1
m_isRichTextEditingAllowed: 0
m_LineLimit: 0
m_InputValidator: {fileID: 0}
--- !u!1 &339706568
GameObject:
m_ObjectHideFlags: 0
......@@ -2252,7 +2132,7 @@ MonoBehaviour:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 1879748053}
m_MethodName: ShowRealNameViewWithForceExit
m_MethodName: recordPayWithAmount
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
......
fileFormatVersion: 2
guid: df44702b1f82b4b529845509d2a295ff
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: dacc14f0ae63e464898ae855382ee939
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 0d582c56bdc5a470bbe99d93c288e15e
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
{
"process_id" : 43455,
"version" : "2019.4.39f1c1",
"app_path" : "/Applications/Unity/Hub/Editor/2019.4.39f1c1/Unity.app",
"app_contents_path" : "/Applications/Unity/Hub/Editor/2019.4.39f1c1/Unity.app/Contents"
}
\ No newline at end of file
......@@ -503,4 +503,4 @@ ScriptsOnlyBuild:
platform: 9
scenePathNames:
- Assets/AASDKDemo/Scenes/AASDKDemoScene.unity
playerPath: /Users/ws/Desktop/ZAAUnityDemo/dddddd
playerPath: /Users/ws/Desktop/ZAAUnityDemo/eeeeee
{"m_ExpandedPrefabGameObjectFileIDs":[],"m_ExpandedSceneGameObjectInstanceIDs":[-12076,-12048,-11904,-11434,-11406,-11262,-9598,17176,18388,19130,19196,19274],"m_ScrollY":0.0,"m_LastClickedFileID":0,"m_LastClickedInstanceID":19084}
\ No newline at end of file
{"m_ExpandedPrefabGameObjectFileIDs":[],"m_ExpandedSceneGameObjectInstanceIDs":[],"m_ScrollY":0.0,"m_LastClickedFileID":0,"m_LastClickedInstanceID":0}
\ No newline at end of file
Base path: '/Applications/Unity/Hub/Editor/2019.4.39f1c1/Unity.app/Contents', plugins path '/Applications/Unity/Hub/Editor/2019.4.39f1c1/Unity.app/Contents/PlaybackEngines'
Cmd: initializeCompiler
Cmd: compileSnippet
api=14 type=0 insize=1306 outsize=2564 kw= pd=UNITY_NO_DXT5nm UNITY_NO_RGBM UNITY_ENABLE_REFLECTION_BUFFERS UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 SHADER_API_MOBILE UNITY_HARDWARE_TIER2 UNITY_COLORSPACE_GAMMA UNITY_LIGHTMAP_DLDR_ENCODING ok=1
Cmd: compileSnippet
api=14 type=1 insize=1306 outsize=1187 kw= pd=UNITY_NO_DXT5nm UNITY_NO_RGBM UNITY_ENABLE_REFLECTION_BUFFERS UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF3 SHADER_API_MOBILE UNITY_HARDWARE_TIER1 UNITY_COLORSPACE_GAMMA UNITY_LIGHTMAP_DLDR_ENCODING ok=1
Cmd: compileSnippet
api=14 type=0 insize=1901 outsize=2608 kw= pd=UNITY_NO_DXT5nm UNITY_NO_RGBM UNITY_ENABLE_REFLECTION_BUFFERS UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 SHADER_API_MOBILE UNITY_HARDWARE_TIER2 UNITY_COLORSPACE_GAMMA UNITY_LIGHTMAP_DLDR_ENCODING ok=1
Cmd: compileSnippet
api=14 type=1 insize=1901 outsize=842 kw= pd=UNITY_NO_DXT5nm UNITY_NO_RGBM UNITY_ENABLE_REFLECTION_BUFFERS UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF3 SHADER_API_MOBILE UNITY_HARDWARE_TIER1 UNITY_COLORSPACE_GAMMA UNITY_LIGHTMAP_DLDR_ENCODING ok=1
Cmd: compileSnippet
api=14 type=0 insize=2525 outsize=1546 kw= pd=UNITY_NO_DXT5nm UNITY_NO_RGBM UNITY_ENABLE_REFLECTION_BUFFERS UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 SHADER_API_MOBILE UNITY_HARDWARE_TIER2 UNITY_COLORSPACE_GAMMA UNITY_LIGHTMAP_DLDR_ENCODING ok=1
Cmd: compileSnippet
api=14 type=1 insize=2525 outsize=621 kw= pd=UNITY_NO_DXT5nm UNITY_NO_RGBM UNITY_ENABLE_REFLECTION_BUFFERS UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF3 SHADER_API_MOBILE UNITY_HARDWARE_TIER1 UNITY_COLORSPACE_GAMMA UNITY_LIGHTMAP_DLDR_ENCODING ok=1
......@@ -4,3 +4,4 @@ Cmd: compileSnippet
api=14 type=0 insize=1306 outsize=2564 kw= pd=UNITY_NO_DXT5nm UNITY_NO_RGBM UNITY_ENABLE_REFLECTION_BUFFERS UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 SHADER_API_MOBILE UNITY_HARDWARE_TIER3 UNITY_COLORSPACE_GAMMA UNITY_LIGHTMAP_DLDR_ENCODING ok=1
Cmd: compileSnippet
api=14 type=0 insize=1901 outsize=2608 kw= pd=UNITY_NO_DXT5nm UNITY_NO_RGBM UNITY_ENABLE_REFLECTION_BUFFERS UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 SHADER_API_MOBILE UNITY_HARDWARE_TIER3 UNITY_COLORSPACE_GAMMA UNITY_LIGHTMAP_DLDR_ENCODING ok=1
Cmd: shutdown
......@@ -4,3 +4,6 @@ Cmd: compileSnippet
api=14 type=1 insize=1306 outsize=1187 kw= pd=UNITY_NO_DXT5nm UNITY_NO_RGBM UNITY_ENABLE_REFLECTION_BUFFERS UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 SHADER_API_MOBILE UNITY_HARDWARE_TIER2 UNITY_COLORSPACE_GAMMA UNITY_LIGHTMAP_DLDR_ENCODING ok=1
Cmd: compileSnippet
api=14 type=0 insize=2525 outsize=1546 kw= pd=UNITY_NO_DXT5nm UNITY_NO_RGBM UNITY_ENABLE_REFLECTION_BUFFERS UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 SHADER_API_MOBILE UNITY_HARDWARE_TIER3 UNITY_COLORSPACE_GAMMA UNITY_LIGHTMAP_DLDR_ENCODING ok=1
Cmd: shutdown
Quitting shader compiler process
......@@ -2,3 +2,6 @@ Base path: '/Applications/Unity/Hub/Editor/2019.4.39f1c1/Unity.app/Contents', pl
Cmd: initializeCompiler
Cmd: compileSnippet
api=14 type=1 insize=1306 outsize=1187 kw= pd=UNITY_NO_DXT5nm UNITY_NO_RGBM UNITY_ENABLE_REFLECTION_BUFFERS UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 SHADER_API_MOBILE UNITY_HARDWARE_TIER3 UNITY_COLORSPACE_GAMMA UNITY_LIGHTMAP_DLDR_ENCODING ok=1
Cmd: shutdown
Quitting shader compiler process
......@@ -2,3 +2,6 @@ Base path: '/Applications/Unity/Hub/Editor/2019.4.39f1c1/Unity.app/Contents', pl
Cmd: initializeCompiler
Cmd: compileSnippet
api=14 type=1 insize=1901 outsize=842 kw= pd=UNITY_NO_DXT5nm UNITY_NO_RGBM UNITY_ENABLE_REFLECTION_BUFFERS UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 SHADER_API_MOBILE UNITY_HARDWARE_TIER3 UNITY_COLORSPACE_GAMMA UNITY_LIGHTMAP_DLDR_ENCODING ok=1
Cmd: shutdown
Quitting shader compiler process
......@@ -4,3 +4,6 @@ Cmd: compileSnippet
api=14 type=1 insize=1901 outsize=842 kw= pd=UNITY_NO_DXT5nm UNITY_NO_RGBM UNITY_ENABLE_REFLECTION_BUFFERS UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 SHADER_API_MOBILE UNITY_HARDWARE_TIER2 UNITY_COLORSPACE_GAMMA UNITY_LIGHTMAP_DLDR_ENCODING ok=1
Cmd: compileSnippet
api=14 type=1 insize=2525 outsize=621 kw= pd=UNITY_NO_DXT5nm UNITY_NO_RGBM UNITY_ENABLE_REFLECTION_BUFFERS UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 SHADER_API_MOBILE UNITY_HARDWARE_TIER2 UNITY_COLORSPACE_GAMMA UNITY_LIGHTMAP_DLDR_ENCODING ok=1
Cmd: shutdown
Quitting shader compiler process
......@@ -2,3 +2,6 @@ Base path: '/Applications/Unity/Hub/Editor/2019.4.39f1c1/Unity.app/Contents', pl
Cmd: initializeCompiler
Cmd: compileSnippet
api=14 type=1 insize=2525 outsize=621 kw= pd=UNITY_NO_DXT5nm UNITY_NO_RGBM UNITY_ENABLE_REFLECTION_BUFFERS UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 SHADER_API_MOBILE UNITY_HARDWARE_TIER3 UNITY_COLORSPACE_GAMMA UNITY_LIGHTMAP_DLDR_ENCODING ok=1
Cmd: shutdown
Quitting shader compiler process
<linker>
<assembly fullname="UnityEngine">
<type fullname="UnityEngine.Object" preserve="nothing"/>
<type fullname="UnityEditor.VFXManager" preserve="nothing"/>
<type fullname="UnityEditor.PlayerSettings" preserve="nothing"/>
<type fullname="UnityEngine.Material" preserve="nothing"/>
<type fullname="UnityEngine.TextAsset" preserve="nothing"/>
<type fullname="UnityEngine.Shader" preserve="nothing"/>
<type fullname="UnityEditor.MonoScript" preserve="nothing"/>
<type fullname="UnityEditor.AudioManager" preserve="nothing"/>
<type fullname="UnityEditor.PhysicsManager" preserve="nothing"/>
<type fullname="UnityEditor.TimeManager" preserve="nothing"/>
<type fullname="UnityEditor.InputManager" preserve="nothing"/>
<type fullname="UnityEditor.TagManager" preserve="nothing"/>
<type fullname="UnityEditor.MonoManager" preserve="nothing"/>
<type fullname="UnityEngine.Rendering.GraphicsSettings" preserve="nothing"/>
<type fullname="UnityEngine.QualitySettings" preserve="nothing"/>
<type fullname="UnityEditor.Physics2DSettings" preserve="nothing"/>
<type fullname="UnityEngine.AudioBehaviour" preserve="nothing"/>
<type fullname="UnityEngine.Canvas" preserve="nothing"/>
<type fullname="UnityEngine.RectTransform" preserve="nothing"/>
<type fullname="UnityEngine.LightmapSettings" preserve="nothing"/>
<type fullname="UnityEngine.Sprite" preserve="nothing"/>
<type fullname="UnityEngine.Texture2D" preserve="nothing"/>
<type fullname="UnityEngine.Behaviour" preserve="nothing"/>
<type fullname="UnityEngine.MonoBehaviour" preserve="nothing"/>
<type fullname="UnityEngine.Transform" preserve="nothing"/>
<type fullname="UnityEngine.Component" preserve="nothing"/>
<type fullname="UnityEngine.GameObject" preserve="nothing"/>
<type fullname="UnityEngine.RenderSettings" preserve="nothing"/>
<type fullname="UnityEngine.AudioListener" preserve="nothing"/>
<type fullname="UnityEngine.Font" preserve="nothing"/>
<type fullname="UnityEngine.CanvasRenderer" preserve="nothing"/>
<type fullname="UnityEngine.Light" preserve="nothing"/>
<type fullname="UnityEngine.Texture" preserve="nothing"/>
<type fullname="UnityEngine.Cubemap" preserve="nothing"/>
<type fullname="UnityEngine.Camera" preserve="nothing"/>
</assembly>
<assembly fullname="Assembly-CSharp">
<type fullname="AASDKDemoScript" preserve="nothing"/>
</assembly>
<assembly fullname="UnityEngine.UI">
<type fullname="UnityEngine.EventSystems.EventSystem" preserve="nothing"/>
<type fullname="UnityEngine.EventSystems.StandaloneInputModule" preserve="nothing"/>
<type fullname="UnityEngine.UI.Button" preserve="nothing"/>
<type fullname="UnityEngine.UI.CanvasScaler" preserve="nothing"/>
<type fullname="UnityEngine.UI.GraphicRaycaster" preserve="nothing"/>
<type fullname="UnityEngine.UI.Image" preserve="nothing"/>
<type fullname="UnityEngine.UI.InputField" preserve="nothing"/>
<type fullname="UnityEngine.UI.Text" preserve="nothing"/>
</assembly>
</linker>
{"report":{"modules":[{"name":"Animation","dependencies":[{"name":"Animator","scenes":[],"dependencyType":0,"icon":null},{"name":"AnimatorController","scenes":[],"dependencyType":1,"icon":null},{"name":"AnimatorOverrideController","scenes":[],"dependencyType":0,"icon":null},{"name":"RuntimeAnimatorController","scenes":[],"dependencyType":1,"icon":null}]},{"name":"Audio","dependencies":[{"name":"AudioBehaviour","scenes":["Assets/AASDKDemo/Scenes/AASDKDemoScene.unity"],"dependencyType":0,"icon":null},{"name":"AudioClip","scenes":[],"dependencyType":0,"icon":null},{"name":"AudioListener","scenes":["Assets/AASDKDemo/Scenes/AASDKDemoScene.unity"],"dependencyType":0,"icon":null},{"name":"AudioManager","scenes":[],"dependencyType":1,"icon":null},{"name":"SampleClip","scenes":[],"dependencyType":1,"icon":null}]},{"name":"Core","dependencies":[{"name":"Behaviour","scenes":[],"dependencyType":1,"icon":null},{"name":"BuildSettings","scenes":[],"dependencyType":1,"icon":null},{"name":"Camera","scenes":["Assets/AASDKDemo/Scenes/AASDKDemoScene.unity"],"dependencyType":0,"icon":null},{"name":"Component","scenes":[],"dependencyType":1,"icon":null},{"name":"ComputeShader","scenes":[],"dependencyType":0,"icon":null},{"name":"Cubemap","scenes":["Assets/AASDKDemo/Scenes/AASDKDemoScene.unity"],"dependencyType":0,"icon":null},{"name":"CubemapArray","scenes":[],"dependencyType":0,"icon":null},{"name":"DelayedCallManager","scenes":[],"dependencyType":1,"icon":null},{"name":"EditorExtension","scenes":[],"dependencyType":1,"icon":null},{"name":"GameManager","scenes":[],"dependencyType":1,"icon":null},{"name":"GameObject","scenes":["Assets/AASDKDemo/Scenes/AASDKDemoScene.unity"],"dependencyType":0,"icon":null},{"name":"GlobalGameManager","scenes":[],"dependencyType":1,"icon":null},{"name":"GraphicsSettings","scenes":[],"dependencyType":0,"icon":null},{"name":"InputManager","scenes":[],"dependencyType":1,"icon":null},{"name":"LevelGameManager","scenes":[],"dependencyType":1,"icon":null},{"name":"Light","scenes":["Assets/AASDKDemo/Scenes/AASDKDemoScene.unity"],"dependencyType":0,"icon":null},{"name":"LightmapSettings","scenes":["Assets/AASDKDemo/Scenes/AASDKDemoScene.unity"],"dependencyType":0,"icon":null},{"name":"LightProbes","scenes":[],"dependencyType":0,"icon":null},{"name":"LowerResBlitTexture","scenes":[],"dependencyType":0,"icon":null},{"name":"Material","scenes":["Assets/AASDKDemo/Scenes/AASDKDemoScene.unity"],"dependencyType":0,"icon":null},{"name":"Mesh","scenes":[],"dependencyType":0,"icon":null},{"name":"MeshFilter","scenes":[],"dependencyType":0,"icon":null},{"name":"MeshRenderer","scenes":[],"dependencyType":0,"icon":null},{"name":"MonoBehaviour","scenes":["Assets/AASDKDemo/Scenes/AASDKDemoScene.unity"],"dependencyType":0,"icon":null},{"name":"MonoManager","scenes":[],"dependencyType":1,"icon":null},{"name":"MonoScript","scenes":["Assets/AASDKDemo/Scenes/AASDKDemoScene.unity"],"dependencyType":1,"icon":null},{"name":"NamedObject","scenes":["Assets/AASDKDemo/Scenes/AASDKDemoScene.unity"],"dependencyType":1,"icon":null},{"name":"Object","scenes":["Assets/AASDKDemo/Scenes/AASDKDemoScene.unity"],"dependencyType":0,"icon":null},{"name":"PlayerSettings","scenes":[],"dependencyType":1,"icon":null},{"name":"PreloadData","scenes":[],"dependencyType":0,"icon":null},{"name":"QualitySettings","scenes":[],"dependencyType":0,"icon":null},{"name":"RectTransform","scenes":["Assets/AASDKDemo/Scenes/AASDKDemoScene.unity"],"dependencyType":0,"icon":null},{"name":"ReflectionProbe","scenes":[],"dependencyType":0,"icon":null},{"name":"Renderer","scenes":[],"dependencyType":1,"icon":null},{"name":"RenderSettings","scenes":["Assets/AASDKDemo/Scenes/AASDKDemoScene.unity"],"dependencyType":0,"icon":null},{"name":"RenderTexture","scenes":[],"dependencyType":0,"icon":null},{"name":"ResourceManager","scenes":[],"dependencyType":1,"icon":null},{"name":"RuntimeInitializeOnLoadManager","scenes":[],"dependencyType":1,"icon":null},{"name":"ScriptMapper","scenes":[],"dependencyType":1,"icon":null},{"name":"Shader","scenes":["Assets/AASDKDemo/Scenes/AASDKDemoScene.unity"],"dependencyType":0,"icon":null},{"name":"Sprite","scenes":["Assets/AASDKDemo/Scenes/AASDKDemoScene.unity"],"dependencyType":0,"icon":null},{"name":"SpriteAtlas","scenes":[],"dependencyType":0,"icon":null},{"name":"SpriteRenderer","scenes":[],"dependencyType":0,"icon":null},{"name":"TagManager","scenes":[],"dependencyType":1,"icon":null},{"name":"TextAsset","scenes":["Assets/AASDKDemo/Scenes/AASDKDemoScene.unity"],"dependencyType":0,"icon":null},{"name":"Texture","scenes":[],"dependencyType":1,"icon":null},{"name":"Texture2D","scenes":["Assets/AASDKDemo/Scenes/AASDKDemoScene.unity"],"dependencyType":0,"icon":null},{"name":"Texture2DArray","scenes":[],"dependencyType":0,"icon":null},{"name":"Texture3D","scenes":[],"dependencyType":0,"icon":null},{"name":"TimeManager","scenes":[],"dependencyType":1,"icon":null},{"name":"Transform","scenes":[],"dependencyType":1,"icon":null},{"name":"Required by Animation Module","scenes":[],"dependencyType":2,"icon":"package/com.unity.modules.animation"},{"name":"Required by Audio Module","scenes":[],"dependencyType":2,"icon":"package/com.unity.modules.audio"},{"name":"Required by GameCenter Module","scenes":[],"dependencyType":2,"icon":"package/com.unity.modules.gamecenter"},{"name":"Required by ImageConversion Module","scenes":[],"dependencyType":2,"icon":"package/com.unity.modules.imageconversion"},{"name":"Required by IMGUI Module","scenes":[],"dependencyType":2,"icon":"package/com.unity.modules.imgui"},{"name":"Required by InputLegacy Module","scenes":[],"dependencyType":2,"icon":"package/com.unity.modules.inputlegacy"},{"name":"Required by TextRendering Module","scenes":[],"dependencyType":2,"icon":"package/com.unity.modules.textrendering"},{"name":"Required by UI Module","scenes":[],"dependencyType":2,"icon":"package/com.unity.modules.ui"}]},{"name":"GameCenter","dependencies":[]},{"name":"ImageConversion","dependencies":[{"name":"Required by GameCenter Module","scenes":[],"dependencyType":2,"icon":"package/com.unity.modules.gamecenter"}]},{"name":"IMGUI","dependencies":[]},{"name":"InputLegacy","dependencies":[{"name":"Required by IMGUI Module","scenes":[],"dependencyType":2,"icon":"package/com.unity.modules.imgui"}]},{"name":"SharedInternals","dependencies":[{"name":"Required by Animation Module","scenes":[],"dependencyType":2,"icon":"package/com.unity.modules.animation"},{"name":"Required by Audio Module","scenes":[],"dependencyType":2,"icon":"package/com.unity.modules.audio"},{"name":"Required by Core Module","scenes":[],"dependencyType":2,"icon":"package/com.unity.modules.core"},{"name":"Required by GameCenter Module","scenes":[],"dependencyType":2,"icon":"package/com.unity.modules.gamecenter"},{"name":"Required by ImageConversion Module","scenes":[],"dependencyType":2,"icon":"package/com.unity.modules.imageconversion"},{"name":"Required by IMGUI Module","scenes":[],"dependencyType":2,"icon":"package/com.unity.modules.imgui"},{"name":"Required by InputLegacy Module","scenes":[],"dependencyType":2,"icon":"package/com.unity.modules.inputlegacy"},{"name":"Required by TextRendering Module","scenes":[],"dependencyType":2,"icon":"package/com.unity.modules.textrendering"},{"name":"Required by UI Module","scenes":[],"dependencyType":2,"icon":"package/com.unity.modules.ui"}]},{"name":"TextRendering","dependencies":[{"name":"Font","scenes":["Assets/AASDKDemo/Scenes/AASDKDemoScene.unity"],"dependencyType":0,"icon":null},{"name":"Required by IMGUI Module","scenes":[],"dependencyType":2,"icon":"package/com.unity.modules.imgui"},{"name":"Required by UI Module","scenes":[],"dependencyType":2,"icon":"package/com.unity.modules.ui"}]},{"name":"UI","dependencies":[{"name":"Canvas","scenes":["Assets/AASDKDemo/Scenes/AASDKDemoScene.unity"],"dependencyType":0,"icon":null},{"name":"CanvasGroup","scenes":[],"dependencyType":0,"icon":null},{"name":"CanvasRenderer","scenes":["Assets/AASDKDemo/Scenes/AASDKDemoScene.unity"],"dependencyType":0,"icon":null}]}]}}
\ No newline at end of file
-out="/Users/ws/Desktop/Zplay/ZAnti-Addiction/ZAnti-Addiction-Unity/AASDK-Unity/Temp/StagingArea/Data/Managed/tempStrip" -x="/Users/ws/Desktop/Zplay/ZAnti-Addiction/ZAnti-Addiction-Unity/AASDK-Unity/Temp/StagingArea/Data/Managed/../platform_native_link.xml" -x="/var/folders/3f/mrlf6c5d7qn5tdqc_msdhxl40000gn/T/tmp1373b3bb.tmp" -x="/Users/ws/Desktop/Zplay/ZAnti-Addiction/ZAnti-Addiction-Unity/AASDK-Unity/Temp/StagingArea/Data/Managed/TypesInScenes.xml" -d="/Users/ws/Desktop/Zplay/ZAnti-Addiction/ZAnti-Addiction-Unity/AASDK-Unity/Temp/StagingArea/Data/Managed" --include-unity-root-assembly="/Users/ws/Desktop/Zplay/ZAnti-Addiction/ZAnti-Addiction-Unity/AASDK-Unity/Temp/StagingArea/Data/Managed/Assembly-CSharp.dll" --include-unity-root-assembly="/Users/ws/Desktop/Zplay/ZAnti-Addiction/ZAnti-Addiction-Unity/AASDK-Unity/Temp/StagingArea/Data/Managed/UnityEngine.UI.dll" --dotnetruntime=il2cpp --dotnetprofile=unityaot --use-editor-options --include-directory="/Users/ws/Desktop/Zplay/ZAnti-Addiction/ZAnti-Addiction-Unity/AASDK-Unity/Temp/StagingArea/Data/Managed" --rule-set=Conservative --editor-data-file="/Users/ws/Desktop/Zplay/ZAnti-Addiction/ZAnti-Addiction-Unity/AASDK-Unity/Temp/StagingArea/Data/Managed/EditorToUnityLinkerData.json" --platform=iOS --enable-engine-module-stripping --engine-modules-asset-file="/Applications/Unity/Hub/Editor/2019.4.39f1c1/PlaybackEngines/iOSSupport/Whitelists/../modules.asset"
\ No newline at end of file
wait-for-native-debugger=0
vr-enabled=0
hdr-display-enabled=0
此文件的差异太大,无法显示。
#pragma once
// Enabling this will force app to do a hard crash instead of a nice exit when UnhandledException
// is thrown. This will force iOS to generate a standard crash report, that can be submitted to
// iTunes by app users and inspected by developers.
#define ENABLE_IOS_CRASH_REPORTING 1
// Enabling this will add a custom Objective-C Uncaught Exception handler, which will print out
// exception information to console.
#define ENABLE_OBJC_UNCAUGHT_EXCEPTION_HANDLER 1
// Enable custom crash reporter to capture crashes. Crash logs will be available to scripts via
// CrashReport API.
#define ENABLE_CUSTOM_CRASH_REPORTER 0
// Enable submission of custom crash reports to Unity servers. This will enable custom crash
// reporter.
#define ENABLE_CRASH_REPORT_SUBMISSION 0
#if ENABLE_CRASH_REPORT_SUBMISSION && !ENABLE_CUSTOM_CRASH_REPORTER
#undef ENABLE_CUSTOM_CRASH_REPORTER
#define ENABLE_CUSTOM_CRASH_REPORTER 1
#endif
#if PLATFORM_TVOS
#undef ENABLE_CUSTOM_CRASH_REPORTER
#define ENABLE_CUSTOM_CRASH_REPORTER 0
#endif
extern "C" void UnityInstallPostCrashCallback();
void InitCrashHandling();
#import "PLCrashReporter.h"
#import "CrashReporter.h"
#include "UndefinePlatforms.h"
#include <mach-o/ldsyms.h>
#include "RedefinePlatforms.h"
extern "C" NSString* UnityGetCrashReportsPath();
static NSUncaughtExceptionHandler* gsCrashReporterUEHandler = NULL;
static decltype(_mh_execute_header) * sExecuteHeader = NULL;
extern "C" void UnitySetExecuteMachHeader(const decltype(_mh_execute_header)* header)
{
sExecuteHeader = header;
}
extern "C" const decltype(_mh_execute_header) * UnityGetExecuteMachHeader() {
return sExecuteHeader;
}
static void SavePendingCrashReport()
{
if (![[UnityPLCrashReporter sharedReporter] hasPendingCrashReport])
return;
NSFileManager *fm = [NSFileManager defaultManager];
NSError *error;
if (![fm createDirectoryAtPath: UnityGetCrashReportsPath() withIntermediateDirectories: YES attributes: nil error: &error])
{
::printf("CrashReporter: could not create crash report directory: %s\n", [[error localizedDescription] UTF8String]);
return;
}
NSData *data = [[UnityPLCrashReporter sharedReporter] loadPendingCrashReportDataAndReturnError: &error];
if (data == nil)
{
::printf("CrashReporter: failed to load crash report data: %s\n", [[error localizedDescription] UTF8String]);
return;
}
NSString* file = [UnityGetCrashReportsPath() stringByAppendingPathComponent: @"crash-"];
unsigned long long seconds = (unsigned long long)[[NSDate date] timeIntervalSince1970];
file = [file stringByAppendingString: [NSString stringWithFormat: @"%llu", seconds]];
file = [file stringByAppendingString: @".plcrash"];
if ([data writeToFile: file atomically: YES])
{
::printf("CrashReporter: saved pending crash report.\n");
if (![[UnityPLCrashReporter sharedReporter] purgePendingCrashReportAndReturnError: &error])
{
::printf("CrashReporter: couldn't remove pending report: %s\n", [[error localizedDescription] UTF8String]);
}
}
else
{
::printf("CrashReporter: couldn't save crash report.\n");
}
// Now copy out a pending version that we can delete if/when we send it
file = [UnityGetCrashReportsPath() stringByAppendingPathComponent: @"crash-pending.plcrash"];
if ([data writeToFile: file atomically: YES])
{
::printf("CrashReporter: saved copy of pending crash report.\n");
}
else
{
::printf("CrashReporter: couldn't save copy of pending crash report.\n");
}
}
static void InitCrashReporter()
{
NSError *error;
UnityInstallPostCrashCallback();
if ([[UnityPLCrashReporter sharedReporter] enableCrashReporterAndReturnError: &error])
::printf("CrashReporter: initialized\n");
else
NSLog(@"CrashReporter: could not enable crash reporter: %@", error);
SavePendingCrashReport();
}
static void UncaughtExceptionHandler(NSException *exception)
{
NSLog(@"Uncaught exception: %@: %@\n%@", [exception name], [exception reason], [exception callStackSymbols]);
if (gsCrashReporterUEHandler)
gsCrashReporterUEHandler(exception);
}
static void InitObjCUEHandler()
{
// Crash reporter sets its own handler, so we have to save it and call it manually
gsCrashReporterUEHandler = NSGetUncaughtExceptionHandler();
NSSetUncaughtExceptionHandler(&UncaughtExceptionHandler);
}
void InitCrashHandling()
{
#if ENABLE_CUSTOM_CRASH_REPORTER
InitCrashReporter();
#endif
#if ENABLE_OBJC_UNCAUGHT_EXCEPTION_HANDLER
InitObjCUEHandler();
#endif
}
// This function will be called when AppDomain.CurrentDomain.UnhandledException event is triggered.
// When running on device the app will do a hard crash and it will generate a crash log.
extern "C" void CrashedCheckBelowForHintsWhy()
{
#if ENABLE_IOS_CRASH_REPORTING || ENABLE_CUSTOM_CRASH_REPORTER
// Make app crash hard here
__builtin_trap();
// Just in case above doesn't work
abort();
#endif
}
/* SINGLE CPP FILE TO GENERATE SEAMLESS BRIDGE BETWEEN BINARIES < SHARED ENGINE LIBRARY WITH ABSTRACT EXTERN FUNCTIONS> | < PLAYER EXECUTABLE WITH ABSTRACT FUNCTION IMPLEMENTATION >
1. if building shared engine library this file will:
define body for Unity* methods that proxy call to actual method
actual method will be set later from outside with respective call to SetUnity*Body
defines SetUnity*Body method to set actual method for call, theese functions are exported from library
2. if building player against shared engine library this file will:
calls SetUnity*Body providing actual method to be called by shared engine library later
wraps all SetUnity*Body calls in one single method SetAllUnityFunctionsForDynamicPlayerLib
- notes:
file will be included only if development / il2ccp and:
- for xcode project if BuildSettings.UseDynamicPlayerLib is true
- for player if (build.pl staticLib=1, jam BUILD_IOS_DYNAMIC_PLAYER=1)
DynamicLibEngineAPI-functions.h include list of functions to proxy calls from player to trampoline
- each function inlist is defined with UnityExternCall or UnityExternCall4StaticMember
*/
// deal with __VA_ARGS__ to convert them to formated lists with provided M macro
#define VA_ARGS_COUNT(...) INTERNAL_GET_ARG_COUNT_PRIVATE(0, ## __VA_ARGS__, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0)
#define INTERNAL_GET_ARG_COUNT_PRIVATE(_0, _1_, _2_, _3_, _4_, _5_, _6_, _7_, _8_, _9_, _10_, _11_, _12_, _13_, _14_, _15_, _16_, _17_, _18_, _19_, _20_, count, ...) count
#define JOIN_VA_ARGS_0(M, ...)
#define JOIN_VA_ARGS_1(M, T1) M(T1,1)
#define JOIN_VA_ARGS_2(M, T1, T2) M(T1,1), M(T2,2)
#define JOIN_VA_ARGS_3(M, T1, T2, T3) M(T1,1), M(T2,2), M(T3,3)
#define JOIN_VA_ARGS_4(M, T1, T2, T3, T4) M(T1,1), M(T2,2), M(T3,3), M(T4,4)
#define JOIN_VA_ARGS_5(M, T1, T2, T3, T4, T5) M(T1,1), M(T2,2), M(T3,3), M(T4,4), M(T5,5)
#define JOIN_VA_ARGS_6(M, T1, T2, T3, T4, T5, T6) M(T1,1), M(T2,2), M(T3,3), M(T4,4), M(T5,5), M(T6,6)
#define JOIN_VA_ARGS_7(M, T1, T2, T3, T4, T5, T6, T7) M(T1,1), M(T2,2), M(T3,3), M(T4,4), M(T5,5), M(T6,6), M(T7,7)
#define JOIN_VA_ARGS_8(M, T1, T2, T3, T4, T5, T6, T7, T8) M(T1,1), M(T2,2), M(T3,3), M(T4,4), M(T5,5), M(T6,6), M(T7,7), M(T8,8)
#define JOIN_VA_ARGS_9(M, T1, T2, T3, T4, T5, T6, T7, T8, T9) M(T1,1), M(T2,2), M(T3,3), M(T4,4), M(T5,5), M(T6,6), M(T7,7), M(T8,8), M(T9,9)
#define JOIN_VA_ARGS___(M, N, ...) JOIN_VA_ARGS_##N(M, __VA_ARGS__ )
#define JOIN_VA_ARGS__(M, N, ...) JOIN_VA_ARGS___(M,N,__VA_ARGS__)
#define JOIN_VA_ARGS_(M, ...) JOIN_VA_ARGS__(M,VA_ARGS_COUNT(__VA_ARGS__), __VA_ARGS__)
#define JOIN_VA_ARGS(M, ...) JOIN_VA_ARGS_(M,__VA_ARGS__)
// convert to function definition params:
// egz: VA_ARGS_TO_PARAMS(int, char, bool) expands to: int p3, char p2, bool p1
#define VA_JOIN_AS_PARAMS(type, index) type p##index
#define VA_ARGS_TO_PARAMS(...) JOIN_VA_ARGS(VA_JOIN_AS_PARAMS,__VA_ARGS__)
// convert to function call params
// egz: VA_ARGS_TO_CALL(int,char,bool) exapnds to: p3, p2, p1
#define VA_JOIN_AS_CALL(type, index) p##index
#define VA_ARGS_TO_CALL(...) JOIN_VA_ARGS(VA_JOIN_AS_CALL,__VA_ARGS__)
#ifndef UNITY_ENGINE_DYNAMICLIB_MODE
#define UNITY_ENGINE_DYNAMICLIB_MODE 0
#endif
#if UNITY_ENGINE_DYNAMICLIB_MODE
// [ part of Unity Player ]
// this part generates Unity* functions that act as proxy to call actual function from trampoline
// for each function in DynamicLibEngineAPI-functions.h will be generated proxy function
// proxy for extern "C" function
// egz: UnityExternCall(int, UnityTestFunctionName, int);
// will expand to:
// static int(*gPtrUnityTestFunctionName)(int) = nullptr;
// extern "C" int UnityTestFunctionName(int p1) {
// assert(gPtrUnityTestFunctionName) != nullptr);
// return gPtrUnityTestFunctionName(p1);
// }
// __attribute__((visibility("default")))
// extern "C" void SetUnityTestFunctionNameBody(decltype(&UnityTestFunctionName) fPtr) {
// gPtrUnityTestFunctionName = fPtr;
// }
#define UnityExternCall(returnType, funcName, ...) \
static returnType(*gPtr##funcName)(__VA_ARGS__) = nullptr; \
extern "C" returnType funcName(VA_ARGS_TO_PARAMS(__VA_ARGS__)) {\
assert(gPtr##funcName != nullptr); \
return gPtr##funcName(VA_ARGS_TO_CALL(__VA_ARGS__)); \
} \
__attribute__((visibility("default"))) \
extern "C" void Set##funcName##Body(decltype(&funcName) fPtr) { \
gPtr##funcName = fPtr; \
}
// proxy for class static methods
// egz: UnityExternCall4StaticMember(int, MyClass MyMethod, int);
// will expand to:
// static int(*gPtrMyClassMyMethod)(int) = nullptr;
// int MyClass::MyMethod(int p1) {
// assert(gPtrMyClassMyMethod) != nullptr);
// return gPtrMyClassMyMethod(p1);
// }
// __attribute__((visibility("default")))
// extern "C" void SetMyClassMyMethodBody(decltype(gPtrMyClassMyMethod) fPtr) {
// gPtrMyClassMyMethod = fPtr;
// }
#define UnityExternCall4StaticMember(returnType, className, funcName, ...) \
static returnType(*gPtr##className##funcName)(__VA_ARGS__) = nullptr; \
returnType className::funcName(VA_ARGS_TO_PARAMS(__VA_ARGS__)) { \
assert(gPtr##className##funcName != nullptr); \
return gPtr##className##funcName(VA_ARGS_TO_CALL(__VA_ARGS__)); \
} \
__attribute__((visibility("default"))) \
extern "C" void Set##className##funcName##Body(decltype(gPtr##className##funcName) fPtr) { \
gPtr##className##funcName = fPtr; \
}
#include "PlatformDependent/iPhonePlayer/Trampoline/Classes/Unity/UnitySharedDecls.h"
#include "PlatformDependent/iPhonePlayer/Trampoline/Classes/Unity/UnityRendering.h"
#include "PlatformDependent/iPhonePlayer/TrampolineInterface.h"
#include "Runtime/Graphics/DisplayManager.h"
#include "Runtime/Input/LocationService.h"
#import <UIKit/UIKit.h>
#include "External/baselib/builds/Include/PreExternalInclude.h"
#include <mach-o/ldsyms.h>
#include "External/baselib/builds/Include/PostExternalInclude.h"
#include "DynamicLibEngineAPI-functions.h"
#undef UnityExternCall
#undef UnityExternCall4StaticMember
#else
// [ part of Xcode project ]
// for each function defined in DynamicLibEngineAPI-functions.h will be generated SetUnity*Body function
// for extern "C" functions
// egz: UnityExternCall(int, UnityTestFunctionName, int);
// will expand to:
// extern "C" UnityTestFunctionName(int);
// extern "C" SetUnityTestFunctionName(decltype(&UnityTestFunctionName));
#define UnityExternCall(returnType, funcName, ...) \
extern "C" returnType funcName(__VA_ARGS__); \
extern "C" void Set##funcName##Body(decltype(&funcName));
// for class static method
// egz: UnityExternCall4StaticMember(int, MyClass MyMethod, int);
// will expand to:
// extern "C" void SetMyClassMyMethodBody(decltype(&MyClass::MyMethod));
#define UnityExternCall4StaticMember(returnType, className, funcName, ...) \
extern "C" void Set##className##funcName##Body(decltype(&className::funcName));
#include "UnityRendering.h"
#include "Classes/iPhone_Sensors.h"
#include "UndefinePlatforms.h"
#include <mach-o/ldsyms.h>
#include "RedefinePlatforms.h"
#include "DynamicLibEngineAPI-functions.h"
#undef UnityExternCall
#undef UnityExternCall4StaticMember
// single function to call every Set*Body function from DynamicLibEngineAPI-functions.h
#define UnityExternCall(returnType, funcName, ...) Set##funcName##Body(funcName);
#define UnityExternCall4StaticMember(returnType, className, funcName, ...) Set##className##funcName##Body(className::funcName)
extern "C" void SetAllUnityFunctionsForDynamicPlayerLib()
{
#include "DynamicLibEngineAPI-functions.h"
}
#undef UnityExternCall
#undef UnityExternCall4StaticMember
#endif
/*
* Author: Landon Fuller <landonf@plausiblelabs.com>
*
* Copyright (c) 2008-2009 Plausible Labs Cooperative, Inc.
* All rights reserved.
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
* files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use,
* copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following
* conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*/
#import <Foundation/Foundation.h>
/**
* @ingroup functions
*
* Prototype of a callback function used to execute additional user code with signal information as provided
* by PLCrashReporter. Called upon completion of crash handling, after the crash report has been written to disk.
*
* @param info The signal info.
* @param uap The crash's threads context.
* @param context The API client's supplied context value.
*
* @sa @ref async_safety
* @sa PLCrashReporter::setPostCrashCallbacks:
*/
typedef void (*UnityPLCrashReporterPostCrashSignalCallback)(siginfo_t *info, ucontext_t *uap, void *context);
/**
* @ingroup types
*
* This structure contains callbacks supported by PLCrashReporter to allow the host application to perform
* additional tasks prior to program termination after a crash has occured.
*
* @sa @ref async_safety
*/
typedef struct UnityPLCrashReporterCallbacks
{
/** The version number of this structure. If not one of the defined version numbers for this type, the behavior
* is undefined. The current version of this structure is 0. */
uint16_t version;
/** An arbitrary user-supplied context value. This value may be NULL. */
void *context;
/** The callback used to report caught signal information. In version 0 of this structure, all crashes will be
* reported via this function. */
UnityPLCrashReporterPostCrashSignalCallback handleSignal;
} UnityPLCrashReporterCallbacks;
@interface UnityPLCrashReporter : NSObject
{
@private
/** YES if the crash reporter has been enabled */
BOOL _enabled;
/** Application identifier */
NSString *_applicationIdentifier;
/** Application version */
NSString *_applicationVersion;
/** Path to the crash reporter internal data directory */
NSString *_crashReportDirectory;
}
+ (UnityPLCrashReporter *)sharedReporter;
- (BOOL)hasPendingCrashReport;
- (NSData *)loadPendingCrashReportData;
- (NSData *)loadPendingCrashReportDataAndReturnError:(NSError **)outError;
- (NSData *)generateLiveReport;
- (NSData *)generateLiveReportAndReturnError:(NSError **)outError;
- (BOOL)purgePendingCrashReport;
- (BOOL)purgePendingCrashReportAndReturnError:(NSError **)outError;
- (BOOL)enableCrashReporter;
- (BOOL)enableCrashReporterAndReturnError:(NSError **)outError;
- (void)setCrashCallbacks:(UnityPLCrashReporterCallbacks *)callbacks;
@end
#pragma once
#include "LifeCycleListener.h"
@protocol AppDelegateListener<LifeCycleListener>
@optional
// these do not have apple defined notifications, so we use our own notifications
// notification will be posted from
// - (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
// notification user data is deviceToken
- (void)didRegisterForRemoteNotificationsWithDeviceToken:(NSNotification*)notification;
// notification will be posted from
// - (void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error
// notification user data is error
- (void)didFailToRegisterForRemoteNotificationsWithError:(NSNotification*)notification;
// notification will be posted from
// - (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo
// notification user data is userInfo
- (void)didReceiveRemoteNotification:(NSNotification*)notification;
// notification will be posted from
// - (void)application:(UIApplication*)application didReceiveLocalNotification:(UILocalNotification*)notification
// notification user data is notification
- (void)didReceiveLocalNotification:(NSNotification*)notification;
// notification will be posted from
// - (BOOL)application:(UIApplication*)application openURL:(NSURL*)url sourceApplication:(NSString*)sourceApplication annotation:(id)annotation
// notification user data is the NSDictionary containing all the params
- (void)onOpenURL:(NSNotification*)notification;
// notification will be posted from
// - (BOOL)application:(UIApplication*)application willFinishLaunchingWithOptions:(NSDictionary*)launchOptions
// notification user data is the NSDictionary containing launchOptions
- (void)applicationWillFinishLaunchingWithOptions:(NSNotification*)notification;
// notification will be posted from
// - (void)application:(UIApplication*)application handleEventsForBackgroundURLSession:(nonnull NSString *)identifier completionHandler:(nonnull void (^)())completionHandler
// notification user data is NSDictionary with one item where key is session identifier and value is completion handler
- (void)onHandleEventsForBackgroundURLSession:(NSNotification*)notification;
// these are just hooks to existing notifications
- (void)applicationDidReceiveMemoryWarning:(NSNotification*)notification;
- (void)applicationSignificantTimeChange:(NSNotification*)notification;
- (void)applicationWillChangeStatusBarFrame:(NSNotification*)notification;
- (void)applicationWillChangeStatusBarOrientation:(NSNotification*)notification;
@end
void UnityRegisterAppDelegateListener(id<AppDelegateListener> obj);
void UnityUnregisterAppDelegateListener(id<AppDelegateListener> obj);
extern "C" __attribute__((visibility("default"))) NSString* const kUnityDidRegisterForRemoteNotificationsWithDeviceToken;
extern "C" __attribute__((visibility("default"))) NSString* const kUnityDidFailToRegisterForRemoteNotificationsWithError;
extern "C" __attribute__((visibility("default"))) NSString* const kUnityDidReceiveRemoteNotification;
extern "C" __attribute__((visibility("default"))) NSString* const kUnityDidReceiveLocalNotification;
extern "C" __attribute__((visibility("default"))) NSString* const kUnityOnOpenURL;
extern "C" __attribute__((visibility("default"))) NSString* const kUnityWillFinishLaunchingWithOptions;
extern "C" __attribute__((visibility("default"))) NSString* const kUnityHandleEventsForBackgroundURLSession;
#include "AppDelegateListener.h"
#define DEFINE_NOTIFICATION(name) extern "C" __attribute__((visibility ("default"))) NSString* const name = @#name;
DEFINE_NOTIFICATION(kUnityDidRegisterForRemoteNotificationsWithDeviceToken);
DEFINE_NOTIFICATION(kUnityDidFailToRegisterForRemoteNotificationsWithError);
DEFINE_NOTIFICATION(kUnityDidReceiveRemoteNotification);
DEFINE_NOTIFICATION(kUnityDidReceiveLocalNotification);
DEFINE_NOTIFICATION(kUnityOnOpenURL);
DEFINE_NOTIFICATION(kUnityWillFinishLaunchingWithOptions);
DEFINE_NOTIFICATION(kUnityHandleEventsForBackgroundURLSession);
#undef DEFINE_NOTIFICATION
void UnityRegisterAppDelegateListener(id<AppDelegateListener> obj)
{
#define REGISTER_SELECTOR(sel, notif_name) \
if([obj respondsToSelector:sel]) \
[[NSNotificationCenter defaultCenter] addObserver:obj \
selector:sel \
name:notif_name \
object:nil \
]; \
UnityRegisterLifeCycleListener(obj);
REGISTER_SELECTOR(@selector(didRegisterForRemoteNotificationsWithDeviceToken:), kUnityDidRegisterForRemoteNotificationsWithDeviceToken);
REGISTER_SELECTOR(@selector(didFailToRegisterForRemoteNotificationsWithError:), kUnityDidFailToRegisterForRemoteNotificationsWithError);
REGISTER_SELECTOR(@selector(didReceiveRemoteNotification:), kUnityDidReceiveRemoteNotification);
REGISTER_SELECTOR(@selector(didReceiveLocalNotification:), kUnityDidReceiveLocalNotification);
REGISTER_SELECTOR(@selector(onOpenURL:), kUnityOnOpenURL);
REGISTER_SELECTOR(@selector(applicationDidReceiveMemoryWarning:), UIApplicationDidReceiveMemoryWarningNotification);
REGISTER_SELECTOR(@selector(applicationSignificantTimeChange:), UIApplicationSignificantTimeChangeNotification);
#if !PLATFORM_TVOS
REGISTER_SELECTOR(@selector(applicationWillChangeStatusBarFrame:), UIApplicationWillChangeStatusBarFrameNotification);
REGISTER_SELECTOR(@selector(applicationWillChangeStatusBarOrientation:), UIApplicationWillChangeStatusBarOrientationNotification);
#endif
REGISTER_SELECTOR(@selector(applicationWillFinishLaunchingWithOptions:), kUnityWillFinishLaunchingWithOptions);
REGISTER_SELECTOR(@selector(onHandleEventsForBackgroundURLSession:), kUnityHandleEventsForBackgroundURLSession);
#undef REGISTER_SELECTOR
}
void UnityUnregisterAppDelegateListener(id<AppDelegateListener> obj)
{
UnityUnregisterLifeCycleListener(obj);
[[NSNotificationCenter defaultCenter] removeObserver: obj name: kUnityDidRegisterForRemoteNotificationsWithDeviceToken object: nil];
[[NSNotificationCenter defaultCenter] removeObserver: obj name: kUnityDidFailToRegisterForRemoteNotificationsWithError object: nil];
[[NSNotificationCenter defaultCenter] removeObserver: obj name: kUnityDidReceiveRemoteNotification object: nil];
[[NSNotificationCenter defaultCenter] removeObserver: obj name: kUnityDidReceiveLocalNotification object: nil];
[[NSNotificationCenter defaultCenter] removeObserver: obj name: kUnityOnOpenURL object: nil];
[[NSNotificationCenter defaultCenter] removeObserver: obj name: UIApplicationDidReceiveMemoryWarningNotification object: nil];
[[NSNotificationCenter defaultCenter] removeObserver: obj name: UIApplicationSignificantTimeChangeNotification object: nil];
#if !PLATFORM_TVOS
[[NSNotificationCenter defaultCenter] removeObserver: obj name: UIApplicationWillChangeStatusBarFrameNotification object: nil];
[[NSNotificationCenter defaultCenter] removeObserver: obj name: UIApplicationWillChangeStatusBarOrientationNotification object: nil];
#endif
}
#pragma once
// important app life-cycle events
@protocol LifeCycleListener<NSObject>
@optional
- (void)didFinishLaunching:(NSNotification*)notification;
- (void)didBecomeActive:(NSNotification*)notification;
- (void)willResignActive:(NSNotification*)notification;
- (void)didEnterBackground:(NSNotification*)notification;
- (void)willEnterForeground:(NSNotification*)notification;
- (void)willTerminate:(NSNotification*)notification;
- (void)unityDidUnload:(NSNotification*)notification;
- (void)unityDidQuit:(NSNotification*)notification;
@end
void UnityRegisterLifeCycleListener(id<LifeCycleListener> obj);
void UnityUnregisterLifeCycleListener(id<LifeCycleListener> obj);
#ifdef __cplusplus
extern "C" {
#endif
extern __attribute__((visibility("default"))) NSString* const kUnityDidUnload;
extern __attribute__((visibility("default"))) NSString* const kUnityDidQuit;
#ifdef __cplusplus
} // extern "C"
#endif
#include "LifeCycleListener.h"
#define DEFINE_NOTIFICATION(name) extern "C" __attribute__((visibility ("default"))) NSString* const name = @#name;
DEFINE_NOTIFICATION(kUnityDidUnload);
DEFINE_NOTIFICATION(kUnityDidQuit);
void UnityRegisterLifeCycleListener(id<LifeCycleListener> obj)
{
#define REGISTER_SELECTOR(sel, notif_name) \
if([obj respondsToSelector:sel]) \
[[NSNotificationCenter defaultCenter] addObserver:obj \
selector:sel \
name:notif_name \
object:nil \
]; \
REGISTER_SELECTOR(@selector(didFinishLaunching:), UIApplicationDidFinishLaunchingNotification);
REGISTER_SELECTOR(@selector(didBecomeActive:), UIApplicationDidBecomeActiveNotification);
REGISTER_SELECTOR(@selector(willResignActive:), UIApplicationWillResignActiveNotification);
REGISTER_SELECTOR(@selector(didEnterBackground:), UIApplicationDidEnterBackgroundNotification);
REGISTER_SELECTOR(@selector(willEnterForeground:), UIApplicationWillEnterForegroundNotification);
REGISTER_SELECTOR(@selector(willTerminate:), UIApplicationWillTerminateNotification);
REGISTER_SELECTOR(@selector(unityDidUnload:), kUnityDidUnload);
REGISTER_SELECTOR(@selector(unityDidQuit:), kUnityDidQuit);
#undef REGISTER_SELECTOR
}
void UnityUnregisterLifeCycleListener(id<LifeCycleListener> obj)
{
[[NSNotificationCenter defaultCenter] removeObserver: obj name: UIApplicationDidFinishLaunchingNotification object: nil];
[[NSNotificationCenter defaultCenter] removeObserver: obj name: UIApplicationDidBecomeActiveNotification object: nil];
[[NSNotificationCenter defaultCenter] removeObserver: obj name: UIApplicationWillResignActiveNotification object: nil];
[[NSNotificationCenter defaultCenter] removeObserver: obj name: UIApplicationDidEnterBackgroundNotification object: nil];
[[NSNotificationCenter defaultCenter] removeObserver: obj name: UIApplicationWillEnterForegroundNotification object: nil];
[[NSNotificationCenter defaultCenter] removeObserver: obj name: UIApplicationWillTerminateNotification object: nil];
[[NSNotificationCenter defaultCenter] removeObserver: obj name: kUnityDidUnload object: nil];
[[NSNotificationCenter defaultCenter] removeObserver: obj name: kUnityDidQuit object: nil];
}
#pragma once
#include "LifeCycleListener.h"
struct UnityDisplaySurfaceBase; // Unity/UnityRendering.h
struct RenderingSurfaceParams; // Unity/DisplayManager.h
// due to delicate nature of render loop we have just one delegate in app
// if you need to use several rendering delegates you need to do one of:
// 1. create custom delegate that will have code to combine effects by itself
// 2. use helper that simply holds array of delegates (which will work only in easiest cases)
@protocol RenderPluginDelegate<LifeCycleListener, NSObject>
@required
// this will be called right after gles intialization.
// surface pointer will never be changed, so you should keep it.
// the only valid fields in there as of now are layer and context
- (void)mainDisplayInited:(struct UnityDisplaySurfaceBase*)surface;
@optional
// this will be called before recreating main display surface (from [UnityView recreateRenderingSurface])
// you can tweak params here.
// use it for enabling CVTextureCache support and the likes
- (void)onBeforeMainDisplaySurfaceRecreate:(struct RenderingSurfaceParams*)params;
// this will be called right after recreating main display surface (from [UnityView recreateRenderingSurface])
// as [UnityView recreateRenderingSurface] is the only place where unity itself will trigger surface recreate
// you can use this method to update your rendering depending on changes
- (void)onAfterMainDisplaySurfaceRecreate;
// this will be called after frame render and msaa resolve but before blitting to system FB
// you can expect that frame contents are ready (though still in target resolution)
// use it for anylizing/postprocessing rendered frame, taking screenshot and the like
// you should use targetFB if it is not 0
// otherwise use systemFB (covers case of intermediate fb not needed: no msaa, native res, no CVTextureCache involved)
- (void)onFrameResolved;
@end
// simple helper for common plugin stuff
// you can implement protocol directly, but subclassing this will provide some common implementation
@interface RenderPluginDelegate : NSObject<RenderPluginDelegate>
{
struct UnityDisplaySurfaceBase* mainDisplaySurface;
}
- (void)mainDisplayInited:(struct UnityDisplaySurfaceBase*)surface;
@end
// simple helper to have an array of render delegates.
// be warned that it works in simplest cases only, when there is no interop between delegates
@interface RenderPluginArrayDelegate : RenderPluginDelegate
{
NSArray* delegateArray;
}
@property(nonatomic, retain) NSArray* delegateArray;
- (void)mainDisplayInited:(struct UnityDisplaySurfaceBase*)surface;
- (void)onBeforeMainDisplaySurfaceRecreate:(struct RenderingSurfaceParams*)params;
- (void)onAfterMainDisplaySurfaceRecreate;
- (void)onFrameResolved;
- (void)didBecomeActive:(NSNotification*)notification;
- (void)willResignActive:(NSNotification*)notification;
- (void)didEnterBackground:(NSNotification*)notification;
- (void)willEnterForeground:(NSNotification*)notification;
- (void)willTerminate:(NSNotification*)notification;
@end
#include "RenderPluginDelegate.h"
@implementation RenderPluginDelegate
- (void)mainDisplayInited:(struct UnityDisplaySurfaceBase*)surface
{
mainDisplaySurface = surface;
// TODO: move lifecycle to init?
UnityRegisterLifeCycleListener(self);
}
@end
#define CALL_METHOD_ON_ARRAY(method) \
do{ \
for(id<RenderPluginDelegate> del in delegateArray) \
{ \
if([del respondsToSelector:@selector(method)]) \
[del method]; \
} \
} while(0)
#define CALL_METHOD_ON_ARRAY_ARG(method, arg) \
do{ \
for(id<RenderPluginDelegate> del in delegateArray) \
{ \
if([del respondsToSelector:@selector(method:)]) \
[del method:arg]; \
} \
} while(0)
@implementation RenderPluginArrayDelegate
@synthesize delegateArray;
- (void)mainDisplayInited:(struct UnityDisplaySurfaceBase*)surface
{
[super mainDisplayInited: surface];
CALL_METHOD_ON_ARRAY_ARG(mainDisplayInited, surface);
}
- (void)onBeforeMainDisplaySurfaceRecreate:(struct RenderingSurfaceParams*)params
{
CALL_METHOD_ON_ARRAY_ARG(onBeforeMainDisplaySurfaceRecreate, params);
}
- (void)onAfterMainDisplaySurfaceRecreate;
{
CALL_METHOD_ON_ARRAY(onAfterMainDisplaySurfaceRecreate);
}
- (void)onFrameResolved;
{
CALL_METHOD_ON_ARRAY(onFrameResolved);
}
- (void)didBecomeActive:(NSNotification*)notification
{
CALL_METHOD_ON_ARRAY_ARG(didBecomeActive, notification);
}
- (void)willResignActive:(NSNotification*)notification
{
CALL_METHOD_ON_ARRAY_ARG(willResignActive, notification);
}
- (void)didEnterBackground:(NSNotification*)notification
{
CALL_METHOD_ON_ARRAY_ARG(didEnterBackground, notification);
}
- (void)willEnterForeground:(NSNotification*)notification
{
CALL_METHOD_ON_ARRAY_ARG(willEnterForeground, notification);
}
- (void)willTerminate:(NSNotification*)notification
{
CALL_METHOD_ON_ARRAY_ARG(willTerminate, notification);
}
@end
#undef CALL_METHOD_ON_ARRAY
#undef CALL_METHOD_ON_ARRAY_ARG
#pragma once
#import <Foundation/NSNotification.h>
// view changes on the main view controller
@protocol UnityViewControllerListener<NSObject>
@optional
- (void)viewWillLayoutSubviews:(NSNotification*)notification;
- (void)viewDidLayoutSubviews:(NSNotification*)notification;
- (void)viewWillDisappear:(NSNotification*)notification;
- (void)viewDidDisappear:(NSNotification*)notification;
- (void)viewWillAppear:(NSNotification*)notification;
- (void)viewDidAppear:(NSNotification*)notification;
- (void)interfaceWillChangeOrientation:(NSNotification*)notification;
- (void)interfaceDidChangeOrientation:(NSNotification*)notification;
@end
@protocol UnityViewControllerNotifications<NSObject>
@optional
- (void)onViewWillLayoutSubviews;
- (void)onViewDidLayoutSubviews;
- (void)onViewDidDisappear:(BOOL)animated;
- (void)onViewWillDisappear:(BOOL)animated;
- (void)onViewDidAppear:(BOOL)animated;
- (void)onViewWillAppear:(BOOL)animated;
@end
// this default delegate will send notifications for UnityViewControllerListener
@interface UnityViewControllerNotificationsDefaultSender : NSObject<UnityViewControllerNotifications>
- (void)onViewWillLayoutSubviews;
- (void)onViewDidLayoutSubviews;
- (void)onViewDidDisappear:(BOOL)animated;
- (void)onViewWillDisappear:(BOOL)animated;
- (void)onViewDidAppear:(BOOL)animated;
- (void)onViewWillAppear:(BOOL)animated;
@end
void UnityRegisterViewControllerListener(id<UnityViewControllerListener> obj);
void UnityUnregisterViewControllerListener(id<UnityViewControllerListener> obj);
extern "C" __attribute__((visibility("default"))) NSString* const kUnityViewWillLayoutSubviews;
extern "C" __attribute__((visibility("default"))) NSString* const kUnityViewDidLayoutSubviews;
extern "C" __attribute__((visibility("default"))) NSString* const kUnityViewWillDisappear;
extern "C" __attribute__((visibility("default"))) NSString* const kUnityViewDidDisappear;
extern "C" __attribute__((visibility("default"))) NSString* const kUnityViewWillAppear;
extern "C" __attribute__((visibility("default"))) NSString* const kUnityViewDidAppear;
extern "C" __attribute__((visibility("default"))) NSString* const kUnityInterfaceWillChangeOrientation;
extern "C" __attribute__((visibility("default"))) NSString* const kUnityInterfaceDidChangeOrientation;
#include "UnityViewControllerListener.h"
#include <UIKit/UIApplication.h>
#define DEFINE_NOTIFICATION(name) extern "C" __attribute__((visibility ("default"))) NSString* const name = @#name;
DEFINE_NOTIFICATION(kUnityViewWillLayoutSubviews);
DEFINE_NOTIFICATION(kUnityViewDidLayoutSubviews);
DEFINE_NOTIFICATION(kUnityViewWillDisappear);
DEFINE_NOTIFICATION(kUnityViewDidDisappear);
DEFINE_NOTIFICATION(kUnityViewWillAppear);
DEFINE_NOTIFICATION(kUnityViewDidAppear);
DEFINE_NOTIFICATION(kUnityInterfaceWillChangeOrientation);
DEFINE_NOTIFICATION(kUnityInterfaceDidChangeOrientation);
#undef DEFINE_NOTIFICATION
void UnityRegisterViewControllerListener(id<UnityViewControllerListener> obj)
{
#define REGISTER_SELECTOR(sel, notif_name) \
if([obj respondsToSelector:sel]) \
[[NSNotificationCenter defaultCenter] addObserver:obj selector:sel name:notif_name object:nil]; \
REGISTER_SELECTOR(@selector(viewWillLayoutSubviews:), kUnityViewWillLayoutSubviews);
REGISTER_SELECTOR(@selector(viewDidLayoutSubviews:), kUnityViewDidLayoutSubviews);
REGISTER_SELECTOR(@selector(viewWillDisappear:), kUnityViewWillDisappear);
REGISTER_SELECTOR(@selector(viewDidDisappear:), kUnityViewDidDisappear);
REGISTER_SELECTOR(@selector(viewWillAppear:), kUnityViewWillAppear);
REGISTER_SELECTOR(@selector(viewDidAppear:), kUnityViewDidAppear);
REGISTER_SELECTOR(@selector(interfaceWillChangeOrientation:), kUnityInterfaceWillChangeOrientation);
REGISTER_SELECTOR(@selector(interfaceDidChangeOrientation:), kUnityInterfaceDidChangeOrientation);
#undef REGISTER_SELECTOR
}
void UnityUnregisterViewControllerListener(id<UnityViewControllerListener> obj)
{
[[NSNotificationCenter defaultCenter] removeObserver: obj name: kUnityViewWillLayoutSubviews object: nil];
[[NSNotificationCenter defaultCenter] removeObserver: obj name: kUnityViewDidLayoutSubviews object: nil];
[[NSNotificationCenter defaultCenter] removeObserver: obj name: kUnityViewWillDisappear object: nil];
[[NSNotificationCenter defaultCenter] removeObserver: obj name: kUnityViewDidDisappear object: nil];
[[NSNotificationCenter defaultCenter] removeObserver: obj name: kUnityViewWillAppear object: nil];
[[NSNotificationCenter defaultCenter] removeObserver: obj name: kUnityViewDidAppear object: nil];
[[NSNotificationCenter defaultCenter] removeObserver: obj name: kUnityInterfaceWillChangeOrientation object: nil];
[[NSNotificationCenter defaultCenter] removeObserver: obj name: kUnityInterfaceDidChangeOrientation object: nil];
}
extern void AppController_SendUnityViewControllerNotification(NSString* name);
@implementation UnityViewControllerNotificationsDefaultSender
- (void)onViewWillLayoutSubviews
{
AppController_SendUnityViewControllerNotification(kUnityViewWillLayoutSubviews);
}
- (void)onViewDidLayoutSubviews
{
AppController_SendUnityViewControllerNotification(kUnityViewDidLayoutSubviews);
}
- (void)onViewDidDisappear:(BOOL)animated
{
AppController_SendUnityViewControllerNotification(kUnityViewDidDisappear);
}
- (void)onViewWillDisappear:(BOOL)animated
{
AppController_SendUnityViewControllerNotification(kUnityViewWillDisappear);
}
- (void)onViewDidAppear:(BOOL)animated
{
AppController_SendUnityViewControllerNotification(kUnityViewDidAppear);
}
- (void)onViewWillAppear:(BOOL)animated
{
AppController_SendUnityViewControllerNotification(kUnityViewWillAppear);
}
@end
//
// Prefix header
//
#include "Preprocessor.h"
#ifdef __OBJC__
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#endif
#include "UnityTrampolineConfigure.h"
#include "UnityInterface.h"
#ifndef __OBJC__
#if USE_IL2CPP_PCH
#include "il2cpp_precompiled_header.h"
#endif
#endif
#ifndef TARGET_IPHONE_SIMULATOR
#define TARGET_IPHONE_SIMULATOR 0
#endif
#define printf_console printf
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!