New Version 1.42

Moving cam replay.
Fixed the bugs.

New Version 1.42

Moving cam replay.
Fixed the bugs.

New Version 1.42

Moving cam replay,
Fixed the bugs.
This commit is contained in:
SkunkStudios 2025-01-29 09:54:37 +07:00
parent dcb7df5fd1
commit 1c033119df
7079 changed files with 186851 additions and 48991 deletions

View file

@ -0,0 +1,132 @@
#if ENABLE_CLOUD_SERVICES_ANALYTICS
using System;
using System.Text;
using UnityEngine.Networking;
namespace UnityEngine.Analytics
{
public class DataPrivacy
{
[Serializable]
internal struct UserPostData
{
public string appid;
public string userid;
public long sessionid;
public string platform;
public UInt32 platformid;
public string sdk_ver;
public bool debug_device;
public string deviceid;
public string plugin_ver;
}
[Serializable]
internal struct TokenData
{
public string url;
public string token;
}
const string kVersion = "3.0.0";
const string kVersionString = "DataPrivacyPackage/" + kVersion;
internal const string kBaseUrl = "https://data-optout-service.uca.cloud.unity3d.com";
const string kTokenUrl = kBaseUrl + "/token";
internal static UserPostData GetUserData()
{
var postData = new UserPostData
{
appid = Application.cloudProjectId,
userid = AnalyticsSessionInfo.userId,
sessionid = AnalyticsSessionInfo.sessionId,
platform = Application.platform.ToString(),
platformid = (UInt32)Application.platform,
sdk_ver = Application.unityVersion,
debug_device = Debug.isDebugBuild,
deviceid = SystemInfo.deviceUniqueIdentifier,
plugin_ver = kVersionString
};
return postData;
}
static string GetUserAgent()
{
var message = "UnityPlayer/{0} ({1}/{2}{3} {4})";
return String.Format(message,
Application.unityVersion,
Application.platform.ToString(),
(UInt32)Application.platform,
Debug.isDebugBuild ? "-dev" : "",
kVersionString);
}
static String getErrorString(UnityWebRequest www)
{
var json = www.downloadHandler.text;
var error = www.error;
if (String.IsNullOrEmpty(error))
{
// 5.5 sometimes fails to parse an error response, and the only clue will be
// in www.responseHeadersString, which isn't accessible.
error = "Empty response";
}
if (!String.IsNullOrEmpty(json))
{
error += ": " + json;
}
return error;
}
public static void FetchPrivacyUrl(Action<string> success, Action<string> failure = null)
{
string postJson = JsonUtility.ToJson(GetUserData());
byte[] bytes = Encoding.UTF8.GetBytes(postJson);
var uploadHandler = new UploadHandlerRaw(bytes);
uploadHandler.contentType = "application/json";
var www = UnityWebRequest.Post(kTokenUrl, "");
www.uploadHandler = uploadHandler;
#if !UNITY_WEBGL
www.SetRequestHeader("User-Agent", GetUserAgent());
#endif
var async = www.SendWebRequest();
async.completed += (AsyncOperation async2) =>
{
var json = www.downloadHandler.text;
if (!String.IsNullOrEmpty(www.error) || String.IsNullOrEmpty(json))
{
var error = getErrorString(www);
if (failure != null)
{
failure(error);
}
}
else
{
TokenData tokenData;
tokenData.url = ""; // Just to quell "possibly unassigned" error
try
{
tokenData = JsonUtility.FromJson<TokenData>(json);
}
catch (Exception e)
{
if (failure != null)
{
failure(e.ToString());
}
}
success(tokenData.url);
}
};
}
}
}
#endif //ENABLE_CLOUD_SERVICES_ANALYTICS