diff --git a/Unity/Assets/Plugins/Android/AndroidManifest.xml b/Unity/Assets/Plugins/Android/AndroidManifest.xml index 7000dea9..d1a0bcc7 100644 --- a/Unity/Assets/Plugins/Android/AndroidManifest.xml +++ b/Unity/Assets/Plugins/Android/AndroidManifest.xml @@ -1,14 +1,30 @@ + + + + + + + - + + + + diff --git a/Unity/Assets/Plugins/Android/libs.meta b/Unity/Assets/Plugins/Android/libs.meta new file mode 100644 index 00000000..46a9b947 --- /dev/null +++ b/Unity/Assets/Plugins/Android/libs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0c4d838e31c408c69b49073d21f32476 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity/Assets/Plugins/Android/libs/arm64-v8a.meta b/Unity/Assets/Plugins/Android/libs/arm64-v8a.meta new file mode 100644 index 00000000..58791a89 --- /dev/null +++ b/Unity/Assets/Plugins/Android/libs/arm64-v8a.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 75c2e601fa760ecddb6cbb3fe79a7988 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity/Assets/Plugins/Android/libs/arm64-v8a/libsmartar.so b/Unity/Assets/Plugins/Android/libs/arm64-v8a/libsmartar.so new file mode 100644 index 00000000..284bb2bf Binary files /dev/null and b/Unity/Assets/Plugins/Android/libs/arm64-v8a/libsmartar.so differ diff --git a/Unity/Assets/Plugins/Android/libs/arm64-v8a/libsmartar.so.meta b/Unity/Assets/Plugins/Android/libs/arm64-v8a/libsmartar.so.meta new file mode 100644 index 00000000..c64d1ca5 --- /dev/null +++ b/Unity/Assets/Plugins/Android/libs/arm64-v8a/libsmartar.so.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: fa02af9e02ff8f63ca95b5b102fd2be2 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Android: Android + second: + enabled: 1 + settings: + CPU: ARM64 + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity/Assets/Plugins/Android/libs/armeabi-v7a.meta b/Unity/Assets/Plugins/Android/libs/armeabi-v7a.meta new file mode 100644 index 00000000..48ae85d0 --- /dev/null +++ b/Unity/Assets/Plugins/Android/libs/armeabi-v7a.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 00cfb277a969edb4192ca30137d5d5ab +folderAsset: yes +timeCreated: 1472054013 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity/Assets/Plugins/Android/libs/armeabi-v7a/libsmartar.so b/Unity/Assets/Plugins/Android/libs/armeabi-v7a/libsmartar.so new file mode 100644 index 00000000..2483f793 Binary files /dev/null and b/Unity/Assets/Plugins/Android/libs/armeabi-v7a/libsmartar.so differ diff --git a/Unity/Assets/Plugins/Android/libs/armeabi-v7a/libsmartar.so.meta b/Unity/Assets/Plugins/Android/libs/armeabi-v7a/libsmartar.so.meta new file mode 100644 index 00000000..47895bf0 --- /dev/null +++ b/Unity/Assets/Plugins/Android/libs/armeabi-v7a/libsmartar.so.meta @@ -0,0 +1,111 @@ +fileFormatVersion: 2 +guid: 1489d023234a3434ca3c5c768b277cf5 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + '': Any + second: + enabled: 0 + settings: + Exclude Android: 0 + Exclude Editor: 1 + Exclude Linux: 1 + Exclude Linux64: 1 + Exclude LinuxUniversal: 1 + Exclude OSXIntel: 1 + Exclude OSXIntel64: 1 + Exclude OSXUniversal: 1 + Exclude Win: 1 + Exclude Win64: 1 + - first: + '': Editor + second: + enabled: 0 + settings: + CPU: AnyCPU + OS: AnyOS + - first: + Android: Android + second: + enabled: 1 + settings: + CPU: ARMv7 + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + - first: + Facebook: Win + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Facebook: Win64 + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: Linux + second: + enabled: 0 + settings: + CPU: x86 + - first: + Standalone: Linux64 + second: + enabled: 0 + settings: + CPU: x86_64 + - first: + Standalone: OSXIntel + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: OSXIntel64 + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: OSXUniversal + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: Win64 + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity/Assets/Plugins/Android/libs/smartar.jar b/Unity/Assets/Plugins/Android/libs/smartar.jar new file mode 100644 index 00000000..b61c07c8 Binary files /dev/null and b/Unity/Assets/Plugins/Android/libs/smartar.jar differ diff --git a/Unity/Assets/Plugins/Android/libs/smartar.jar.meta b/Unity/Assets/Plugins/Android/libs/smartar.jar.meta new file mode 100644 index 00000000..09e3a8fb --- /dev/null +++ b/Unity/Assets/Plugins/Android/libs/smartar.jar.meta @@ -0,0 +1,24 @@ +fileFormatVersion: 2 +guid: 1d996a6660d7f4fc0858dae969110e84 +timeCreated: 1487599602 +licenseType: Pro +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + isOverridable: 0 + platformData: + Android: + enabled: 1 + settings: {} + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity/Assets/Plugins/Android/libs/unsupportedutils.jar b/Unity/Assets/Plugins/Android/libs/unsupportedutils.jar new file mode 100644 index 00000000..49e612c0 Binary files /dev/null and b/Unity/Assets/Plugins/Android/libs/unsupportedutils.jar differ diff --git a/Unity/Assets/Plugins/Android/libs/unsupportedutils.jar.meta b/Unity/Assets/Plugins/Android/libs/unsupportedutils.jar.meta new file mode 100644 index 00000000..bcbde35e --- /dev/null +++ b/Unity/Assets/Plugins/Android/libs/unsupportedutils.jar.meta @@ -0,0 +1,24 @@ +fileFormatVersion: 2 +guid: 6e37dfe3f33b748a8abdf9acd8b4aa98 +timeCreated: 1487914772 +licenseType: Pro +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + isOverridable: 0 + platformData: + Android: + enabled: 1 + settings: {} + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity/Assets/Plugins/Android/libs/x86.meta b/Unity/Assets/Plugins/Android/libs/x86.meta new file mode 100644 index 00000000..d60bf33d --- /dev/null +++ b/Unity/Assets/Plugins/Android/libs/x86.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 0c5cb8d567ea8405f8b610dbfabe8d73 +folderAsset: yes +timeCreated: 1472054013 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity/Assets/Plugins/Android/libs/x86/libsmartar.so b/Unity/Assets/Plugins/Android/libs/x86/libsmartar.so new file mode 100644 index 00000000..f2ff36f8 Binary files /dev/null and b/Unity/Assets/Plugins/Android/libs/x86/libsmartar.so differ diff --git a/Unity/Assets/Plugins/Android/libs/x86/libsmartar.so.meta b/Unity/Assets/Plugins/Android/libs/x86/libsmartar.so.meta new file mode 100644 index 00000000..c56c5513 --- /dev/null +++ b/Unity/Assets/Plugins/Android/libs/x86/libsmartar.so.meta @@ -0,0 +1,25 @@ +fileFormatVersion: 2 +guid: 3b094f97e3fd34721a2d238605ee6ff4 +timeCreated: 1487914463 +licenseType: Pro +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + isOverridable: 0 + platformData: + Android: + enabled: 1 + settings: + CPU: x86 + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity/Assets/Plugins/Android/res/xml.meta b/Unity/Assets/Plugins/Android/res/xml.meta new file mode 100644 index 00000000..ad36d012 --- /dev/null +++ b/Unity/Assets/Plugins/Android/res/xml.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a04582106da1dfbfe9b75f6a258206d9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity/Assets/Plugins/Android/res/xml/filepaths.xml b/Unity/Assets/Plugins/Android/res/xml/filepaths.xml new file mode 100644 index 00000000..1bb0a35d --- /dev/null +++ b/Unity/Assets/Plugins/Android/res/xml/filepaths.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Unity/Assets/Plugins/Android/res/xml/filepaths.xml.meta b/Unity/Assets/Plugins/Android/res/xml/filepaths.xml.meta new file mode 100644 index 00000000..6dcdc404 --- /dev/null +++ b/Unity/Assets/Plugins/Android/res/xml/filepaths.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0f7bbaed95d239dceb293b0c2801d0c5 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity/Assets/Plugins/Android/src.meta b/Unity/Assets/Plugins/Android/src.meta new file mode 100644 index 00000000..90ef92d9 --- /dev/null +++ b/Unity/Assets/Plugins/Android/src.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: ee972f947144c772d9dcaf07f36d6360 +folderAsset: yes +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Android: Android + second: + enabled: 1 + settings: {} + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity/Assets/Plugins/Android/src/UnsupportedUtils.java b/Unity/Assets/Plugins/Android/src/UnsupportedUtils.java new file mode 100644 index 00000000..f7e707e3 --- /dev/null +++ b/Unity/Assets/Plugins/Android/src/UnsupportedUtils.java @@ -0,0 +1,161 @@ +package com.sony.smartar.unsupportedutils; + +import java.io.File; + +import android.annotation.TargetApi; +import android.content.Context; +import android.hardware.Camera; +import android.hardware.Camera.CameraInfo; +import android.hardware.camera2.CameraCharacteristics; +import android.hardware.camera2.CameraManager; +import android.media.MediaActionSound; +import android.media.MediaScannerConnection; +import android.net.Uri; +import android.os.Build; +import android.os.Environment; +import android.os.Handler; +import android.widget.Toast; + +import com.unity3d.player.UnityPlayer; + +@SuppressWarnings("deprecation") +public class UnsupportedUtils { + + private static final String SMART_CAPTURE_DIRECTORY = "/smartar/capture/"; + + private UnsupportedUtils() { + } + + @TargetApi(Build.VERSION_CODES.JELLY_BEAN) + public static void playSystemShutterSound() { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) { return; } + + final MediaActionSound mas = new MediaActionSound(); + mas.load(MediaActionSound.SHUTTER_CLICK); + new Handler(UnityPlayer.currentActivity.getMainLooper()).postDelayed(new Runnable() { + @Override + public void run() { + mas.play(MediaActionSound.SHUTTER_CLICK); + } + }, 100); + } + + public static String moveToExternalDir(String path) { + final File captureImageFile = new File(path); + if (!captureImageFile.exists()) { return null; } + + final String outputPath = Environment.getExternalStorageDirectory().getAbsolutePath() + SMART_CAPTURE_DIRECTORY; + if (!new File(outputPath).exists()) { + new File(outputPath).mkdirs(); + } + final File dest = new File(outputPath, captureImageFile.getName()); + final boolean success = captureImageFile.renameTo(dest); + + return success ? dest.getAbsolutePath() : null; + } + + public static void scanCaptureImage(String path) { + final Context context = UnityPlayer.currentActivity.getApplicationContext(); + final String[] paths = new String[] { path }; + final String[] mimeTypes = new String[] { "image/*" }; + MediaScannerConnection.scanFile(context, paths, mimeTypes, new MediaScannerConnection.OnScanCompletedListener() { + @Override + public void onScanCompleted(String path, Uri uri) { + UnityPlayer.currentActivity.runOnUiThread(new Runnable() { + @Override + public void run() { + Toast.makeText(context, "Completed capture image.", Toast.LENGTH_LONG).show(); + } + }); + } + }); + } + + public static float getFovY(boolean isFront) { + final Camera.Parameters params = getCameraParams(isFront); + if (params == null) { + return 0.0f; + } + return params.getVerticalViewAngle(); + } + + public static float getFocalLength(boolean isFront) { + final Camera.Parameters params = getCameraParams(isFront); + if (params == null) { + return 0.0f; + } + return params.getFocalLength(); + } + + public static int getImageSensorRotation(boolean isFront, Context context) { + if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { // camera 2 + try { + CameraManager manager = (CameraManager) context.getSystemService(Context.CAMERA_SERVICE); + + String cameraIdStr = null; + for (String curCameraIdStr : manager.getCameraIdList()) { + CameraCharacteristics characteristics = manager.getCameraCharacteristics(curCameraIdStr); + Integer facing = characteristics.get(CameraCharacteristics.LENS_FACING); + if (facing != null && facing == CameraCharacteristics.LENS_FACING_FRONT) { + if (isFront) { + // front camera + cameraIdStr = curCameraIdStr; + break; + } + } + else if (facing != null && facing == CameraCharacteristics.LENS_FACING_BACK) { + if (!isFront) { + // back camera + cameraIdStr = curCameraIdStr; + break; + } + } + } + if (cameraIdStr == null) { + return defaultImageSensorRotation(isFront); + } + + CameraCharacteristics camChars = null; + camChars = manager.getCameraCharacteristics(cameraIdStr); + return camChars.get(CameraCharacteristics.SENSOR_ORIENTATION); + } + catch (Exception e) { + return defaultImageSensorRotation(isFront); + } + } + else { // camera 1 + return defaultImageSensorRotation(isFront); + } + } + + private static int defaultImageSensorRotation(boolean isFront) { + if (isFront) { + return 270; + } + else { + return 90; + } + } + + private static Camera.Parameters getCameraParams(boolean isFront) { + final int cameraId = isFront ? 1 : 0; + Camera camera = Camera.open(cameraId); + if (camera == null) { + return null; + } + + CameraInfo cameraInfo = new CameraInfo(); + Camera.getCameraInfo(cameraId, cameraInfo); + if (cameraInfo.facing == CameraInfo.CAMERA_FACING_FRONT + && cameraId == 0) { + camera.release(); + camera = null; + return null; // error. Nexus 7(2012) + } + + Camera.Parameters params = camera.getParameters(); + camera.release(); + camera = null; + return params; + } +} diff --git a/Unity/Assets/Plugins/Android/src/UnsupportedUtils.java.meta b/Unity/Assets/Plugins/Android/src/UnsupportedUtils.java.meta new file mode 100644 index 00000000..98c384f4 --- /dev/null +++ b/Unity/Assets/Plugins/Android/src/UnsupportedUtils.java.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 68b03dde11093654193deb26cfbfca75 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity/Assets/Scripts/ARDebugScreen.cs b/Unity/Assets/Scripts/ARDebugScreen.cs new file mode 100644 index 00000000..cc814a1d --- /dev/null +++ b/Unity/Assets/Scripts/ARDebugScreen.cs @@ -0,0 +1,44 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; +using XeSys; + +public class ARDebugScreen : MonoBehaviour +{ + public Text m_Text; + + public enum TextType + { + Result, + CameraRotation, + SensorRotation, + ScreenRotation, + EffectorTranform, + Scale, + PhysicalScale, + } + + private Dictionary m_texts = new Dictionary(); + + private static ARDebugScreen m_Instance; + + public static ARDebugScreen Instance { get { return m_Instance; } } + + public void Awake() + { + m_Instance = this; + gameObject.SetActive(false); + } + + public void AddText(TextType t, string text) + { + if(!m_texts.ContainsKey(t)) + m_texts.Add(t, ""); + m_texts[t] = text; + } + + public void Update() + { + m_Text.text = string.Join("\n", m_texts.Values); + } +} \ No newline at end of file diff --git a/Unity/Assets/Scripts/ARDebugScreen.cs.meta b/Unity/Assets/Scripts/ARDebugScreen.cs.meta new file mode 100644 index 00000000..2516134e --- /dev/null +++ b/Unity/Assets/Scripts/ARDebugScreen.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8f91fb64a753e60169f3867b6c294207 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity/Assets/Scripts/Docusaurus/DocusaurusGenerator.cs b/Unity/Assets/Scripts/Docusaurus/DocusaurusGenerator.cs index 4ffdf66b..481e2f34 100644 --- a/Unity/Assets/Scripts/Docusaurus/DocusaurusGenerator.cs +++ b/Unity/Assets/Scripts/Docusaurus/DocusaurusGenerator.cs @@ -29,7 +29,7 @@ public static void GenerateData() DocusaurusGenerator generator = new DocusaurusGenerator(); generator.LoadDatabase(); generator.Init(); - generator.DumpDatabaseData(); + //generator.DumpDatabaseData(); //generator.DumpTexts(); //generator.DumpDivaImages(); //generator.DumpDivaCostumes(); @@ -37,6 +37,7 @@ public static void GenerateData() //generator.DumpEventStory(); //generator.DumpSNS(); //generator.DumpValkyrieImages(); + generator.DumpARStamp(); MNNCBFONAOL.PDENBOEFJGE(); } @@ -1051,6 +1052,62 @@ public void DumpValkyrieImages() } } + public void DumpARStamp() + { + string[][] FilesList = { + new string[] {"{0:D2}_{1:D4}_stamp", "/ct/ar/st/{0:D2}/ar{1:D4}.xab"}, // + }; + + string imgs_path = DataPath + "images/ar/"; + CheckPath(imgs_path); + + DOKOHKJIDBO a = new DOKOHKJIDBO(); + a.KIDFJDNOGDG(); + a.LoadEditor(); + + OAFCKDDEBFN decryptor = new OAFCKDDEBFN(); + decryptor.PGLANLKJBLI_Init(); + + for(int id = 0; id < 400; id++) + { + foreach(var file in FilesList) + { + for(int i = 1; i <= 2; i++) + { + string outName = string.Format(file[0], i, id); + if(File.Exists(imgs_path + outName + ".png")) + continue; + string bundleName = string.Format(file[1], i, id); + //BDFPCPHIJCN request = new BDFPCPHIJCN(path, withoutPlarformPath, this.FileLoadedCallback, this.FailedCallback, args, argValue, fi, loadedDispose); + if(!File.Exists(Application.persistentDataPath + "/data/android/" + bundleName)) + continue; + byte[] assetBytes = File.ReadAllBytes(Application.persistentDataPath + "/data/android/" + bundleName); + + BEEINMBNKNM_Encryption encryption = decryptor.MFHAOMELJKJ_FindDecryptor(bundleName); + encryption.CLNHGLGOKPF_Decrypt(assetBytes); + AssetBundle bundle = AssetBundle.LoadFromMemory(assetBytes); + string name = Path.GetFileNameWithoutExtension(bundleName); + Texture BaseTexture = bundle.LoadAsset(name+"_base") as Texture; + Texture MaskTexture = bundle.LoadAsset(name+"_mask") as Texture; + Material mat = null; + if(MaskTexture != null) + { + mat = new Material(Shader.Find("XeSys/Unlit/SplitTexture")); + mat.SetTexture("_MainTex", BaseTexture); + mat.SetTexture("_MaskTex", MaskTexture); + } + Texture2D t = TextureHelper.Copy(BaseTexture as Texture2D, -1, -1, mat); + if(MaskTexture != null) + File.WriteAllBytes(imgs_path + outName + ".png", t.EncodeToPNG()); + else + File.WriteAllBytes(imgs_path + outName + ".jpg", t.EncodeToJPG()); + + bundle.Unload(true); + } + } + } + } + } #endif diff --git a/Unity/Assets/Scripts/VGMToolbox/CriAcbFile.cs b/Unity/Assets/Scripts/VGMToolbox/CriAcbFile.cs index c85155b2..42fb77e3 100644 --- a/Unity/Assets/Scripts/VGMToolbox/CriAcbFile.cs +++ b/Unity/Assets/Scripts/VGMToolbox/CriAcbFile.cs @@ -4,7 +4,7 @@ using System.IO; using System.Linq; using System.Text; - +using DereTore.Common; using VGMToolbox.util; namespace VGMToolbox.format @@ -793,6 +793,11 @@ public Stream[] GetCueFileStreams(int cueId, out bool isStreamed) return GetCueFileStreams(GetCueRecord(cueId), out isStreamed); } + public CriAcbCueRecord GetCueRecordByIdx(int idx) + { + return CueList[idx]; + } + public CriAcbCueRecord GetCueRecord(int id) { // loop through cues and extract diff --git a/Unity/Assets/UMAssets/Scene/Project/Scenes/AR.unity b/Unity/Assets/UMAssets/Scene/Project/Scenes/AR.unity index 72b3e7e7..5e5cd0de 100644 --- a/Unity/Assets/UMAssets/Scene/Project/Scenes/AR.unity +++ b/Unity/Assets/UMAssets/Scene/Project/Scenes/AR.unity @@ -5306,3 +5306,266 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} +--- !u!1 &328246011 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 328246015} + - component: {fileID: 328246014} + - component: {fileID: 328246013} + - component: {fileID: 328246012} + - component: {fileID: 328246016} + m_Layer: 5 + m_Name: DebugScreen + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &328246012 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 328246011} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &328246013 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 328246011} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 792, y: 1184} + m_ScreenMatchMode: 1 + m_MatchWidthOrHeight: 1 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &328246014 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 328246011} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &328246015 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 328246011} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1078196386} + - {fileID: 913145870} + m_Father: {fileID: 0} + m_RootOrder: 14 + m_LocalEulerAnglesHint: {x: 0, y: -0, z: -0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!114 &328246016 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 328246011} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8f91fb64a753e60169f3867b6c294207, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Text: {fileID: 913145871} +--- !u!1 &913145869 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 913145870} + - component: {fileID: 913145872} + - component: {fileID: 913145871} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &913145870 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 913145869} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 328246015} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0, y: 1} +--- !u!114 &913145871 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 913145869} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: New Text +--- !u!222 &913145872 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 913145869} + m_CullTransparentMesh: 0 +--- !u!1 &1078196385 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1078196386} + - component: {fileID: 1078196388} + - component: {fileID: 1078196387} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1078196386 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1078196385} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 328246015} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: -0.00024414062, y: 0} + m_SizeDelta: {x: 500, y: 500} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1078196387 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1078196385} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!222 &1078196388 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1078196385} + m_CullTransparentMesh: 0 diff --git a/Unity/Assets/UMAssets/Scripts/CriWare/CriAtomEx.cs b/Unity/Assets/UMAssets/Scripts/CriWare/CriAtomEx.cs index 310b8222..afd3db27 100644 --- a/Unity/Assets/UMAssets/Scripts/CriWare/CriAtomEx.cs +++ b/Unity/Assets/UMAssets/Scripts/CriWare/CriAtomEx.cs @@ -325,8 +325,12 @@ public struct CueInfo { public int id; // 0x0 public CriAtomEx.CueType type; // 0x4 +#if UNITY_EDITOR + public string name; // 0x8 +#else [MarshalAs(UnmanagedType.LPStr)] public readonly string name; // 0x8 +#endif [MarshalAs(UnmanagedType.LPStr)] public readonly string userData; // 0xC public long length; // 0x10 diff --git a/Unity/Assets/UMAssets/Scripts/IOGKADECKOP.cs b/Unity/Assets/UMAssets/Scripts/IOGKADECKOP.cs index dbc21f7f..6619222d 100644 --- a/Unity/Assets/UMAssets/Scripts/IOGKADECKOP.cs +++ b/Unity/Assets/UMAssets/Scripts/IOGKADECKOP.cs @@ -1369,11 +1369,13 @@ private IEnumerator HBBDEHKOFKN_Coroutine_DownloadTitleBannerTexture() // [IteratorStateMachineAttribute] // RVA: 0x6B42D0 Offset: 0x6B42D0 VA: 0x6B42D0 // // RVA: 0xA06AEC Offset: 0xA06AEC VA: 0xA06AEC + // RVA: 0x9C67E4 Offset: 0x9C67E4 VA: 0x9C67E4 private IEnumerator KOEILOLECCF_Coroutine_StartARMode() { IMMAOANGPNK NOECBNCKIJD; //0x140620C + //0x9D1F4C string ABJDBPINCIC = "AR"; PGIGNJDPCAH.NNOBACMJHDM(PGIGNJDPCAH.FELLIEJEPIJ.JBAIEADLAGH_0); PGIGNJDPCAH.IPJMPBANBPP = true; @@ -1385,11 +1387,13 @@ private IEnumerator KOEILOLECCF_Coroutine_StartARMode() KEHOJEJMGLJ.HHCJCDFCLOB.OFLDICKPNFD(true, () => { //0xA08DDC + //0x9C8BA8 MenuScene.Instance.GotoTitle(); }); KDLPEDBKMID.HHCJCDFCLOB.OFLDICKPNFD(true, () => { //0xA08E78 + //0x9C8C44 MenuScene.Instance.GotoTitle(); }); yield return GameManager.Instance.WaitFadeYielder; @@ -1425,13 +1429,14 @@ private IEnumerator KOEILOLECCF_Coroutine_StartARMode() yield return null; if(CNAIDEAFAAM) { - //LAB_014072d0 + //LAB_009d347c NOECBNCKIJD = null; //LAB_014072d8 DANMJLOBLIE.StartCoroutineWatched(NNPDJBJGBFA_Coroutine_ReturnToTitle()); yield break; } FHBJNLFHGPB_SetPercent(20); + //Crittersism.SetLogUnhandledExceptionAsCrash(false); int a = SecureLibAPI.isRooted() ? 1 : 0; a |= SecureLibAPI.isEmulator() ? 2 : 0; a |= SecureLibAPI.isDebuggerAttachedJava() ? 4 : 0; @@ -1440,6 +1445,20 @@ private IEnumerator KOEILOLECCF_Coroutine_StartARMode() { throw new BOS3LLS6G79("bits=" + a); } + //Crittersism.SetLogUnhandledExceptionAsCrash(true); + if(SecureLibAPI.isRooted()) + { + /*bool CKHEDJODNIP = false; + JHHBAFKMBDL.HHCJCDFCLOB.EOKNIAMKJFB(() => + { + Method$IOGKADECKOP.<>c__DisplayClass38_1.AKIAEEPHANC() + }); + while(!CKHEDJODNIP) + yield return null; + */ + //LAB_009d34b0 + DANMJLOBLIE.StartCoroutineWatched(NNPDJBJGBFA_Coroutine_ReturnToTitle()); + } BEKAMBBOLBO = false; CNAIDEAFAAM = false; DOKOHKJIDBO.HHCJCDFCLOB.DBEPFLFHAFH_RequestMaster(true, () => @@ -1491,6 +1510,44 @@ private IEnumerator KOEILOLECCF_Coroutine_StartARMode() NKGJPJPHLIF.HHCJCDFCLOB.DHMLDAGGKCD = date.Month * 100 + date.Year * 100000 + date.Day; int server_time_auto_update = IMMAOANGPNK.HHCJCDFCLOB.NKEBMCIMJND_Database.GDEKCOOBLMA_System.LPJLEHAJADA("server_time_auto_update", 0); NKGJPJPHLIF.DPCCNOCAHGC = server_time_auto_update == 1; + BEKAMBBOLBO = false; + CNAIDEAFAAM = false; + ARMarkerMasterData.Instance.StartInstall(() => + { + //0x9C9C9C + BEKAMBBOLBO = true; + }, () => + { + //0x9C9CA8 + BEKAMBBOLBO = true; + CNAIDEAFAAM = true; + }); + while(!BEKAMBBOLBO) + yield return null; + if(CNAIDEAFAAM) + { + //LAB_009d3484 + DANMJLOBLIE.StartCoroutineWatched(NNPDJBJGBFA_Coroutine_ReturnToTitle()); + } + BEKAMBBOLBO = false; + CNAIDEAFAAM = false; + NKGJPJPHLIF.HHCJCDFCLOB.NJMOAHNLDBO.Load(() => + { + //0x9C9CB4 + BEKAMBBOLBO = true; + }, () => + { + //0x9C9CC0 + BEKAMBBOLBO = true; + CNAIDEAFAAM = true; + }); + while(!BEKAMBBOLBO) + yield return null; + if(CNAIDEAFAAM) + { + //LAB_009d3484 + DANMJLOBLIE.StartCoroutineWatched(NNPDJBJGBFA_Coroutine_ReturnToTitle()); + } bool FBBAOFKBGBA = true; yield return Co.R(IMJGOIOLGIO_Coroutine_Contract(() => { diff --git a/Unity/Assets/UMAssets/Scripts/JpStringLiterals.cs b/Unity/Assets/UMAssets/Scripts/JpStringLiterals.cs index 9e9d7235..40be7189 100644 --- a/Unity/Assets/UMAssets/Scripts/JpStringLiterals.cs +++ b/Unity/Assets/UMAssets/Scripts/JpStringLiterals.cs @@ -391,6 +391,7 @@ class JpStringLiterals public static string StringLiteral_14032 { get { return DatabaseTextConverter.TranslateStringLiterals("StringLiteral_14032", "アニメーションテーブル数以上のキーフレーム番号が指定されました。"); } } // 0x03bb65f8 public static string StringLiteral_14355 { get { return DatabaseTextConverter.TranslateStringLiterals("StringLiteral_14355", "今日は表示しない"); } } //0x03bb6b04 public static string StringLiteral_14401 { get { return DatabaseTextConverter.TranslateStringLiterals("StringLiteral_14401", "+ボタン"); } } // 0x03bb6bbc + public static string StringLiteral_14411 { get { return DatabaseTextConverter.TranslateStringLiterals("StringLiteral_14411", "画像をシェアするアプリを選択してください。"); } } // 0x03BB6BE4 public static string StringLiteral_14529 { get { return DatabaseTextConverter.TranslateStringLiterals("StringLiteral_14529", "ーーー"); } } // 0x03bb6dbc public static string StringLiteral_14769 { get { return DatabaseTextConverter.TranslateStringLiterals("StringLiteral_14769", "{0}さん"); } } // 0x03bb717c public static string StringLiteral_14832 { get { return DatabaseTextConverter.TranslateStringLiterals("StringLiteral_14832", "ふた"); } } // 0x03bb7278 diff --git a/Unity/Assets/UMAssets/Scripts/ServerSave/BBHNACPENDM.cs b/Unity/Assets/UMAssets/Scripts/ServerSave/BBHNACPENDM.cs index 75d25757..008b84f8 100644 --- a/Unity/Assets/UMAssets/Scripts/ServerSave/BBHNACPENDM.cs +++ b/Unity/Assets/UMAssets/Scripts/ServerSave/BBHNACPENDM.cs @@ -400,7 +400,11 @@ public void CAKOEJHBIHF() } // // RVA: 0xF1F350 Offset: 0xF1F350 VA: 0xF1F350 - // public void GGBOGLKKKDM() { } + // RVA: 0x882F1C Offset: 0x882F1C VA: 0x882F1C + public void GGBOGLKKKDM() + { + KHEKNNFCAOI_Init(0x20000001); + } // // RVA: 0xF1F370 Offset: 0xF1F370 VA: 0xF1F370 public void HIJAFAIOLIL() diff --git a/Unity/Assets/UMAssets/Scripts/Stubs/Assembly-CSharp/UdonLib/AndroidPermissionReceiver.cs b/Unity/Assets/UMAssets/Scripts/UdonLib/AndroidPermissionReceiver.cs similarity index 81% rename from Unity/Assets/UMAssets/Scripts/Stubs/Assembly-CSharp/UdonLib/AndroidPermissionReceiver.cs rename to Unity/Assets/UMAssets/Scripts/UdonLib/AndroidPermissionReceiver.cs index 1df6e909..bbd7c790 100644 --- a/Unity/Assets/UMAssets/Scripts/Stubs/Assembly-CSharp/UdonLib/AndroidPermissionReceiver.cs +++ b/Unity/Assets/UMAssets/Scripts/UdonLib/AndroidPermissionReceiver.cs @@ -45,8 +45,10 @@ public void RequestPremission(AndroidPermission permission, UnityAction onPermit m_permissionResult = false; m_estimateNever = false; m_startTime = DateTime.Now; +#if !UNITY_EDITOR AndroidJavaClass c = new AndroidJavaClass("jp.co.xeen.xeapp.PermissionManager"); c.CallStatic("requestPermission", new object[] { getPermissionStr(permission) }); +#endif if(onPermit != null) { if(m_permitCallBack == null) @@ -59,13 +61,32 @@ public void RequestPremission(AndroidPermission permission, UnityAction onPermit m_notPermitCallBack = new UnityEvent(); m_notPermitCallBack.AddListener(notPermit); } +#if UNITY_EDITOR + NotPermit(); +#endif } // // RVA: 0xE08C88 Offset: 0xE08C88 VA: 0xE08C88 - // public void OnPermit() { } + public void OnPermit() + { + m_permissionResult = true; + m_estimateNever = false; + if(m_permitCallBack != null) + m_permitCallBack.Invoke(); + m_permitCallBack = null; + m_notPermitCallBack = null; + } // // RVA: 0xE08CD0 Offset: 0xE08CD0 VA: 0xE08CD0 - // public void NotPermit() { } + public void NotPermit() + { + m_permissionResult = false; + m_estimateNever = (DateTime.Now - m_startTime).TotalMilliseconds < 250; + if(m_notPermitCallBack != null) + m_notPermitCallBack.Invoke(); + m_permitCallBack = null; + m_notPermitCallBack = null; + } // // RVA: 0xE08CC0 Offset: 0xE08CC0 VA: 0xE08CC0 // private void resetCallBacks() { } diff --git a/Unity/Assets/UMAssets/Scripts/Stubs/Assembly-CSharp/UdonLib/AndroidPermissionReceiver.cs.meta b/Unity/Assets/UMAssets/Scripts/UdonLib/AndroidPermissionReceiver.cs.meta similarity index 100% rename from Unity/Assets/UMAssets/Scripts/Stubs/Assembly-CSharp/UdonLib/AndroidPermissionReceiver.cs.meta rename to Unity/Assets/UMAssets/Scripts/UdonLib/AndroidPermissionReceiver.cs.meta diff --git a/Unity/Assets/UMAssets/Scripts/UdonLib/AndroidUtils.cs b/Unity/Assets/UMAssets/Scripts/UdonLib/AndroidUtils.cs index 750ad85f..5e7a84d9 100644 --- a/Unity/Assets/UMAssets/Scripts/UdonLib/AndroidUtils.cs +++ b/Unity/Assets/UMAssets/Scripts/UdonLib/AndroidUtils.cs @@ -23,6 +23,9 @@ public class AndroidUtils // public static long GetAvailableStorageMB { get; } public static long GetAvailableStorageKB { get { +#if UNITY_EDITOR + return 999999999; +#endif AndroidJavaObject c = new AndroidJavaObject("android.os.StatFs", new object[1] { Application.temporaryCachePath }); long l = c.Call("getAvailableBlocksLong", Array.Empty()); long l2 = c.Call("getBlockSizeLong", Array.Empty()); @@ -55,12 +58,50 @@ public static void PlayShutterSound() // RVA: 0xE094B8 Offset: 0xE094B8 VA: 0xE094B8 public static bool OnShare(string path, string message, string shareTitle) { - AndroidJavaClass c = new AndroidJavaClass("jp.co.xeen.xeapp.PostSNS"); - return c.CallStatic("share", new object[3] { path, message, shareTitle }); + //AndroidJavaClass c = new AndroidJavaClass("jp.co.xeen.xeapp.PostSNS"); + //return c.CallStatic("share", new object[3] { path, message, shareTitle }); + return OnShare2(path, message, shareTitle); } // // RVA: 0xE09798 Offset: 0xE09798 VA: 0xE09798 - // public static bool OnShare2(string path, string message, string shareTitle) { } + public static bool OnShare2(string path, string message, string shareTitle) + { +#if UNITY_ANDROID + string className = "android.content.Intent"; + using(AndroidJavaClass IntentClass = new AndroidJavaClass(className)) + using(AndroidJavaObject sendIntent = new AndroidJavaObject(className)) + { + sendIntent.Call("setAction", IntentClass.GetStatic("ACTION_SEND")); + sendIntent.Call("setType", "image/jpg"); + using (AndroidJavaClass versionClazz = new AndroidJavaClass("android.os.Build$VERSION")) + { + int apiLevel = versionClazz.GetStatic("SDK_INT"); + using (AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) + using (AndroidJavaObject currentActivity = unity.GetStatic("currentActivity")) + { + AndroidJavaObject uriObject; + if(24 <= apiLevel) { + using(AndroidJavaObject context = currentActivity.Call ("getApplicationContext")) + using(AndroidJavaClass fileProvider = new AndroidJavaClass("androidx.core.content.FileProvider")) + using(AndroidJavaObject file = new AndroidJavaObject ("java.io.File", path)) + uriObject = fileProvider.CallStatic("getUriForFile", context, Application.identifier + ".fileprovider", file); + } + else + { + using (AndroidJavaClass uriClass = new AndroidJavaClass("android.net.Uri")) + uriObject = uriClass.CallStatic("parse", "file://" + path); + } + using (sendIntent.Call("putExtra", IntentClass.GetStatic("EXTRA_STREAM"), uriObject)) + { } + AndroidJavaObject jChooser = IntentClass.CallStatic("createChooser", sendIntent, shareTitle); + currentActivity.Call("startActivity", jChooser); + uriObject.Dispose(); + } + } + } +#endif + return true; + } // // RVA: 0xE09A78 Offset: 0xE09A78 VA: 0xE09A78 // public static long get_GetAvailableStorageMB() { } @@ -113,6 +154,7 @@ private static void processActivity(Action func) // RVA: 0xE0A600 Offset: 0xE0A600 VA: 0xE0A600 public static bool RedirectSystemSettings() { +#if !UNITY_EDITOR AndroidJavaClass c = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject o = c.GetStatic("currentActivity"); string packageName = o.Call("getPackageName", Array.Empty()); @@ -127,6 +169,7 @@ public static bool RedirectSystemSettings() c2.Dispose(); o.Dispose(); c.Dispose(); +#endif return true; } diff --git a/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARDivaCamera.cs b/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARDivaCamera.cs index 2f7547fc..68117aeb 100644 --- a/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARDivaCamera.cs +++ b/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARDivaCamera.cs @@ -66,7 +66,7 @@ private void Update() // // RVA: 0x161C1FC Offset: 0x161C1FC VA: 0x161C1FC private void setCameraPositionWithScale(float scale) { - transform.localPosition = UnityEngine.Vector3.Lerp(transform.localPosition, transform.localPosition / scale, 0.3f); + transform.localPosition = UnityEngine.Vector3.Lerp(transform.localPosition, m_arCameraTr.transform.localPosition / scale, 0.3f); m_lastRot = UnityEngine.Quaternion.Lerp(m_lastRot, m_arCameraTr.localRotation, 0.3f); transform.localRotation = m_lastRot * m_offsetRot; transform.localScale = m_arCameraTr.localScale; diff --git a/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARDivaManager.cs b/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARDivaManager.cs index 3c5ccc41..b4cea517 100644 --- a/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARDivaManager.cs +++ b/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARDivaManager.cs @@ -148,8 +148,8 @@ private void ListupDownloadList(List assetList, List cueSheetLis } if(markerData.stampId > 0) { - assetList.Add(string.Format("ct/ar/st/01/{0}{1:D2}.xab", markerData.eventId, markerData.eventId)); - assetList.Add(string.Format("ct/ar/st/02/{0}{1:D2}.xab", markerData.eventId, markerData.eventId)); + assetList.Add(string.Format("ct/ar/st/01/{0}{1:D2}.xab", markerData.eventId, markerData.stampId)); + assetList.Add(string.Format("ct/ar/st/02/{0}{1:D2}.xab", markerData.eventId, markerData.stampId)); } } @@ -319,7 +319,7 @@ private IEnumerator Co_LoadResource(int divaId, int modelId, int wavId, ARDivaMo if(motionId == ARDivaMotionId.Dance) { m_divaResource.LoadFacialResource(divaId, wavId, 1); - m_divaResource.LoadMusicAnimationResource(wavId, primeId, 1, 1, 0); + m_divaResource.LoadMusicAnimationResource(wavId, primeId, 1, 1, divaId); while(!m_divaResource.isMusicAllLoaded) yield return null; m_divaResource.LoadARMusicAnimationResource(wavId, primeId); diff --git a/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/AREngineSmartAR.cs b/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/AREngineSmartAR.cs index fdaa3c0e..1765d1e3 100644 --- a/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/AREngineSmartAR.cs +++ b/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/AREngineSmartAR.cs @@ -355,6 +355,7 @@ public override void SetCurrentMasterData(ARMarkerMasterData.Data data) { smartar.Vector2 v; m_arCont.targets_[i].GetPhysicalSize(out v); + ARDebugScreen.Instance.AddText(ARDebugScreen.TextType.PhysicalScale, "Physical size : "+v.x_+" "+v.y_); Camera c = m_arCameraObj.GetComponent(); if(c == null) f = 1; @@ -370,6 +371,7 @@ public override void SetCurrentMasterData(ARMarkerMasterData.Data data) f = f / data.imageWidth * 0.09999999f; } f = data.divaHeight * ((f / (data.imageWidth * 0.09999999f)) / VuforiaManager.GetCharaModelHeight(data.divaId)); + ARDebugScreen.Instance.AddText(ARDebugScreen.TextType.Scale, "Set Image Scale : "+f); ARDivaCamera.SetARImageScale(f); } diff --git a/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARMarkerMasterData.cs b/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARMarkerMasterData.cs index 9a306e6a..b686480c 100644 --- a/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARMarkerMasterData.cs +++ b/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARMarkerMasterData.cs @@ -110,6 +110,10 @@ protected override void Initialize(byte[] bytes) d.cueSheetId = array[i].BLOIKEAGFED; d.soundStart = array[i].IOCAJMALMLJ; d.soundEnd = array[i].BEBCANGAMAK; + // UMO + d.soundStart = 0; + d.soundEnd = NKGJPJPHLIF.HHCJCDFCLOB.IBLPICFDGOF_ServerRequester.FJDBNGEPKHL.KMEFBNBFJHI_GetServerTime() + 360000; + // UMO l.Add(d); } } @@ -138,6 +142,10 @@ protected override void Initialize(byte[] bytes) float.TryParse(array[i].LNMKDNMJLOE, out nd.angleLimit); long.TryParse(array[i].MPCKINJNGJH, out nd.markerStart); long.TryParse(array[i].JIDKMIHGOHI, out nd.markerEnd); + // UMO + nd.markerStart = 0; + nd.markerEnd = NKGJPJPHLIF.HHCJCDFCLOB.IBLPICFDGOF_ServerRequester.FJDBNGEPKHL.KMEFBNBFJHI_GetServerTime() + 360000; + // UMO nd.emblemId = array[i].APGKOJKNNGP; nd.trackingType = array[i].DCNFOHHNAEF; nd.motionId = (ARDivaMotionId)array[i].BEHGCAMHJIE; diff --git a/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARMarkerSaveManager.cs b/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARMarkerSaveManager.cs index 11990a74..51934282 100644 --- a/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARMarkerSaveManager.cs +++ b/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARMarkerSaveManager.cs @@ -1,6 +1,7 @@ using System; using System.Collections; +using System.Collections.Generic; using System.Globalization; using UnityEngine; using XeApp.Game.Common; @@ -29,11 +30,63 @@ public enum ErrorUIType public int lastErrorId; // 0x24 // // RVA: 0x11DAFC4 Offset: 0x11DAFC4 VA: 0x11DAFC4 - // public void Load(IMCBBOAFION onSuccess, DJBHIFLHJLK onErrorToTitle) { } + public void Load(IMCBBOAFION onSuccess, DJBHIFLHJLK onErrorToTitle) + { + isExistPlayerData = false; + ARSaveData.Instance.Load(); + arPlayerData = new BBHNACPENDM_ServerSaveData(); + arPlayerData.GGBOGLKKKDM(); + timeoutTime = IMMAOANGPNK.HHCJCDFCLOB.NKEBMCIMJND_Database.GDEKCOOBLMA_System.LPJLEHAJADA("ar_net_timeout", 10); + N.a.StartCoroutineWatched(Co_Load(onSuccess, onErrorToTitle)); + } // [IteratorStateMachineAttribute] // RVA: 0x67ACC4 Offset: 0x67ACC4 VA: 0x67ACC4 // // RVA: 0x11DB8A8 Offset: 0x11DB8A8 VA: 0x11DB8A8 - // private IEnumerator Co_Load(IMCBBOAFION onSuccess, DJBHIFLHJLK onErrorToTitle) { } + private IEnumerator Co_Load(IMCBBOAFION onSuccess, DJBHIFLHJLK onErrorToTitle) + { + //0x11DC22C + NAIJIFAJGGK_RequestLoadPlayerData req; + + req = NKGJPJPHLIF.HHCJCDFCLOB.IBLPICFDGOF_ServerRequester.IFFNCAFNEAG_AddRequest(new NAIJIFAJGGK_RequestLoadPlayerData()); + req.HHIHCJKLJFF_BlockToRequest = arPlayerData.KPIDBPEKMFD_GetBlockList(); + req.IJMPLDBGMHC_OnDataReceived = arPlayerData.IIEMACPEEBJ_Load; + while(!req.PLOOEECNHFB_IsDone) + yield return null; + if(req.NPNNPNAIONN_IsError) + { + onErrorToTitle(); + yield break; + } + if(arPlayerData.JHFIPCIHJNL_Base.IJHBIMNKOMC_TutorialEnd != 2) + { + isExistPlayerData = false; + onSuccess(); + yield break; + } + isExistPlayerData = true; + if(!ARSaveData.Instance.SyncToPlayerData(arPlayerData)) + { + onSuccess(); + yield break; + } + EDOHBJAPLPF_JsonData json = new EDOHBJAPLPF_JsonData(); + arPlayerData.LCLPLFCBDBB_ArMarker.OKJPIBHMKMJ(json, arPlayerData.MCKEOKFMLAH_SaveId + 1); + KIJECNFNNDB_JsonWriter w = new KIJECNFNNDB_JsonWriter(); + json.EJCOJCGIBNG_ToJson(w); + string str = w.ToString(); + GGKHIHFPKDH_SavePlayerData r = NKGJPJPHLIF.HHCJCDFCLOB.IBLPICFDGOF_ServerRequester.IFFNCAFNEAG_AddRequest(new GGKHIHFPKDH_SavePlayerData()); + List l = new List(); + l.Add("ar_marker"); + r.HHIHCJKLJFF_Names = l; + r.AHEFHIMGIBI_PlayerData = str; + r.CHDDDCCHJJH_Replace = true; + while(!r.PLOOEECNHFB_IsDone) + yield return null; + if(r.NPNNPNAIONN_IsError) + onErrorToTitle(); + else + onSuccess(); + } // RVA: 0x11DB988 Offset: 0x11DB988 VA: 0x11DB988 public void Save(int marker_no, IMCBBOAFION onSuccess, DJBHIFLHJLK onErrorToTitle) diff --git a/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARMenuManager.cs b/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARMenuManager.cs index 5f4e0719..7bb3736b 100644 --- a/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARMenuManager.cs +++ b/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARMenuManager.cs @@ -288,6 +288,10 @@ public GameObject SetSelectWindow(string[] messages, bool topCanvas = false) } } m_messageWindowObj = Instantiate(m_selectWindowPref, t, false); + { + SelectWindow s = m_messageWindowObj.AddComponent(); + s.Reconstruct(); + } m_messageWindowObj.GetComponent().SetMessage(messages); return m_messageWindowObj; } diff --git a/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARObject.cs b/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARObject.cs index 9143bb84..010c7ef1 100644 --- a/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARObject.cs +++ b/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARObject.cs @@ -170,8 +170,8 @@ private IEnumerator Co_ShowDiva(int summonCnt) { m_divaMan.Pause(0); SetDiaplayMask(ARObjDispMask.DIVA_REASON, false); - m_isLoading--; } + m_isLoading--; if(m_displayMaskFlag != 0) HideDiva(); GameManager.Instance.fullscreenFader.Fade(0.3f, 0); diff --git a/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARPhotoMenu.cs b/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARPhotoMenu.cs index 9c8aaa2f..9b6158a5 100644 --- a/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARPhotoMenu.cs +++ b/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARPhotoMenu.cs @@ -85,14 +85,14 @@ public void SetSNSCallback(UnityAction callback) private void Show() { RectTransform r = GetComponentInParent().GetComponent(); - r.anchoredPosition = new Vector2(r.anchoredPosition.x, 0); + GetComponent().anchoredPosition = new Vector2(GetComponent().anchoredPosition.x, 0); } // // RVA: 0x11E713C Offset: 0x11E713C VA: 0x11E713C private void Hide() { RectTransform r = GetComponentInParent().GetComponent(); - r.anchoredPosition = new Vector2(r.anchoredPosition.x, -r.sizeDelta.y); + GetComponent().anchoredPosition = new Vector2(GetComponent().anchoredPosition.x, -r.sizeDelta.y); } // RVA: 0x11E7284 Offset: 0x11E7284 VA: 0x11E7284 diff --git a/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARSaveData.cs b/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARSaveData.cs index 8321ba23..e98b4dea 100644 --- a/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARSaveData.cs +++ b/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARSaveData.cs @@ -256,6 +256,35 @@ public bool IsHaveStamp(string markerId) } // // RVA: 0xBBE5B8 Offset: 0xBBE5B8 VA: 0xBBE5B8 - // public bool SyncToPlayerData(BBHNACPENDM_ServerSaveData playerData) { } + // RVA: 0x11DC87C Offset: 0x11DC87C VA: 0x11DC87C + public bool SyncToPlayerData(BBHNACPENDM_ServerSaveData playerData) + { + List d = ARMarkerMasterData.Instance.m_markerList; + List l = playerData.LCLPLFCBDBB_ArMarker.DNKNFFPLGNM; + long time = NKGJPJPHLIF.HHCJCDFCLOB.IBLPICFDGOF_ServerRequester.FJDBNGEPKHL.KMEFBNBFJHI_GetServerTime(); + bool res = false; + for(int i = 0; i < d.Count; i++) + { + if(d[i].markerId != "") + { + if(IsHaveStamp(d[i].markerId)) + { + if(l[i].BEBJKJKBOGH_Date == 0) + { + l[i].BEBJKJKBOGH_Date = time; + res = true; + } + } + else if(l[i].BEBJKJKBOGH_Date != 0) + { + res = true; + SetHaveStamp(d[i].markerId, true); + } + } + } + if(res) + Save(); + return res; + } } } diff --git a/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARScene.cs b/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARScene.cs index 4d28ecbb..d80efaa2 100644 --- a/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARScene.cs +++ b/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARScene.cs @@ -373,7 +373,7 @@ private IEnumerator Co_Initialize() break; l2.Add(str); } - m_helpDict.Add(eventList[i].eventId, l); + m_helpDict.Add(eventList[i].eventId, l2); } } List assetList = new List(); diff --git a/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARTakePhoto.cs b/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARTakePhoto.cs index 43525964..a234c85f 100644 --- a/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARTakePhoto.cs +++ b/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARTakePhoto.cs @@ -123,7 +123,7 @@ private IEnumerator CoTakePhoto() yield return null; yield return null; tex3 = FlipTexture2D(tex); - bytes = ImageConversion.EncodeToJPG(tex, 100); + bytes = ImageConversion.EncodeToJPG(tex3, 100); photoSizeKb = bytes.Length / 1024 + 1; yield return null; fname = "Photo" + DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".jpg"; @@ -174,6 +174,7 @@ private IEnumerator CoTakePhoto() for(i = 0; i < 10; i++) { Debug.LogError("[MCRS]loop." + i); + yield return null; } } //LAB_013ac56c; @@ -408,8 +409,8 @@ private string GetPhotoSavePath() if(Application.platform == RuntimePlatform.Android) { AndroidJavaClass c = new AndroidJavaClass("android.os.Environment"); - AndroidJavaObject s = c.CallStatic("getExternalStorageDirectory", Array.Empty()); - path = s.CallStatic("toString", Array.Empty()); + AndroidJavaObject s = c.CallStatic("getExternalStoragePublicDirectory", c.GetStatic("DIRECTORY_PICTURES")); + path = s.Call("getAbsolutePath", Array.Empty()); path += "/UtaMacross/"; s.Dispose(); c.Dispose(); @@ -462,11 +463,12 @@ public Texture2D FlipTexture2D(Texture2D tex) newCols[i * w + j] = cols[i * w + w - 1 - j]; } } + Texture2D res = new Texture2D(w, h, tex.format, false); + res.SetPixels32(newCols); + res.Apply(); + return res; } - Texture2D res = new Texture2D(w, h, tex.format, false); - res.SetPixels32(newCols); - res.Apply(); - return res; + return tex; } // // RVA: 0x13AB948 Offset: 0x13AB948 VA: 0x13AB948 diff --git a/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARTalkPlayer.cs b/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARTalkPlayer.cs index fc849d68..a9e36d6c 100644 --- a/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARTalkPlayer.cs +++ b/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ARTalkPlayer.cs @@ -173,8 +173,8 @@ private void UpdateTalk() max = MOTION_TABLE.Length; } int a = UnityEngine.Random.Range(0, max); - m_divaObject.Talk(MOTION_TABLE[max]); - voARDiva.Play(m_cueNameList[max]); + m_divaObject.Talk(MOTION_TABLE[a]); + voARDiva.Play(m_cueNameList[a]); } else { diff --git a/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ExpiredWindow.cs b/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ExpiredWindow.cs index d4ba5223..8af3ccf9 100644 --- a/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ExpiredWindow.cs +++ b/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/ExpiredWindow.cs @@ -17,6 +17,7 @@ public class ExpiredWindow : MonoBehaviour public void Reconstruct() { m_messageText = transform.Find("Frame/P/Text").gameObject.GetComponent(); + m_frame = transform.Find("Frame").gameObject.GetComponent(); } // RVA: 0x13B2354 Offset: 0x13B2354 VA: 0x13B2354 diff --git a/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/SelectWindow.cs b/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/SelectWindow.cs index e88b38a9..4c4680b4 100644 --- a/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/SelectWindow.cs +++ b/Unity/Assets/UMAssets/Scripts/XeApp/Game/AR/SelectWindow.cs @@ -21,6 +21,12 @@ public class SelectWindow : MonoBehaviour public static SelWinRslt Result { get { return m_result; } } // 0x13B555C + public void Reconstruct() + { + m_text = GetComponentsInChildren(true); + m_button = transform.GetChild(0).GetComponentsInChildren