5 Commits

Author SHA1 Message Date
5b9f9ee741 添加渠道 2026-06-09 11:06:01 +08:00
31fac7a2b3 添加 disable_b2b_ad_unit_ids 2026-06-02 17:52:12 +08:00
4f33446770 广告测试 2026-06-02 17:51:10 +08:00
6866b7fca9 enhance ChangeLinkAccount functionality
- Added LoginTypeToBindType function to map login types to binding types.
- Updated ChangeLinkAccount method to handle account linking and unbinding with appropriate error handling.
- Ensured proper messaging for success and failure cases during account changes.
- Cleaned temporary SNS information after account change attempts.
2026-03-30 22:11:16 +08:00
9f5151c54c [U] sync with ft 2026-03-27 12:29:31 +08:00
151 changed files with 6030 additions and 28186 deletions

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 2e9e076a217436a47b4b81811b4505db
guid: 4fac2ab3b272f487c8ef6515ae7668e1
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: ef8467ffb0e4447b79a8804884a7520a
labels:
- al_max
- al_max_export_path-MaxSdk/Mediation/ByteDance/Editor
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<dependencies>
<androidPackages>
<androidPackage spec="com.applovin.mediation:bytedance-adapter:8.1.0.3.0">
<repositories>
<repository>https://artifact.bytedance.com/repository/pangle</repository>
</repositories>
</androidPackage>
</androidPackages>
<iosPods>
<iosPod name="AppLovinMediationByteDanceAdapter" version="8.1.0.6.0" />
</iosPods>
</dependencies>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 0828555cb1ce94702a4af6f3dce3d735
labels:
- al_max
- al_max_export_path-MaxSdk/Mediation/ByteDance/Editor/Dependencies.xml
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: b493b78c71ed7fe49951c8084f0f8b2a
guid: 324c3a2236ad740799b8b6dc27e85c82
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: db1de4066dc4e4290b3879b34fa87de2
labels:
- al_max
- al_max_export_path-MaxSdk/Mediation/Mintegral/Editor
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<dependencies>
<androidPackages>
<androidPackage spec="com.applovin.mediation:mintegral-adapter:17.1.61.0">
<repositories>
<repository>https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea</repository>
</repositories>
</androidPackage>
<androidPackage spec="androidx.recyclerview:recyclerview:1.2.1" />
</androidPackages>
<iosPods>
<iosPod name="AppLovinMediationMintegralAdapter" version="8.1.4.0.0" />
</iosPods>
</dependencies>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 221b2a20a58a04f2cb4afb0779587206
labels:
- al_max
- al_max_export_path-MaxSdk/Mediation/Mintegral/Editor/Dependencies.xml
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 1798e75878e264647a9f38b7a694542c
guid: a6796c876aa794d13affab798ea46f1c
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 9ecadc3649c184389b90252aa2a2b448
labels:
- al_max
- al_max_export_path-MaxSdk/Mediation/Moloco/Editor
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<dependencies>
<androidPackages>
<androidPackage spec="com.applovin.mediation:moloco-adapter:4.9.0.0" />
</androidPackages>
<iosPods>
<iosPod name="AppLovinMediationMolocoAdapter" version="4.6.1.1" />
</iosPods>
</dependencies>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 0f5b2cb1209274ba18b234b42d2efe96
labels:
- al_max
- al_max_export_path-MaxSdk/Mediation/Moloco/Editor/Dependencies.xml
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: b7ba47a303ab5a54aa50ce9e0ef18967
guid: 4b1126795647541ba8c2eb166b7b70bc
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 277e2383262e844708fc74a6104f4985
labels:
- al_max
- al_max_export_path-MaxSdk/Mediation/Yandex/Editor
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<dependencies>
<androidPackages>
<androidPackage spec="com.applovin.mediation:yandex-adapter:8.1.0.0" />
</androidPackages>
<iosPods>
<iosPod name="AppLovinMediationYandexAdapter" version="8.1.0.1" />
</iosPods>
</dependencies>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: a77aaf886990c4e6ba469a4f083b9284
labels:
- al_max
- al_max_export_path-MaxSdk/Mediation/Yandex/Editor/Dependencies.xml
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -7,23 +7,94 @@ import com.tuyoo.gamesdk.api.SDKAPI;
import com.tuyoo.gamesdk.api.SDKAPIConstant;
import com.tuyoo.gamesdk.api.SDKCallBack;
import com.tuyoo.gamesdk.api.SDKWrapper;
import com.tuyoo.gamesdk.login.model.SnsInfo;
import org.json.JSONException;
import org.json.JSONObject;
public class SnsTest {
static final String TAG = "SNSTEST";
static final String GOName = "SDKTest";
public static void Bind(String type, String guserId)
static SnsInfo tmpSnsInfo = null;
public static void Bind(String type, String userId)
{
SDKAPI.getIns().getSnsInfo(type, (snscode, snsInfo, snsmsg) ->{
if(snscode == SDKCallBack.CODE_SUCCESS && snsInfo !=null)
if(snscode == SDKCallBack.CODE_SUCCESS && snsInfo != null)
{
SDKAPI.getIns().bindBySnsId(snsInfo, guserId, (bindcode, bindmsg)->{
SDKAPI.getIns().bindBySnsId(snsInfo, userId, (bindcode, bindmsg)->{
if(bindcode == SDKCallBack.CODE_SUCCESS)
{
Log.i(TAG, "LinkSns success");
try {
JSONObject result = new JSONObject();
result.put("code", bindcode);
result.put("userId", userId);
JSONObject serverResponse = new JSONObject(bindmsg);
JSONObject userInfo = serverResponse.getJSONObject("result");
result.put("loginData", userInfo);
UnityPlayer.UnitySendMessage(GOName, "BindCallback", result.toString());
} catch (JSONException e) {
String msg = "{\"code\":1, \"userId\": 0}";
UnityPlayer.UnitySendMessage(GOName, "BindCallback", msg);
}
}
else if(bindcode == SDKCallBack.CODE_FAILED)
{
try
{
JSONObject bindMsgObj = new JSONObject(bindmsg);
JSONObject bindMsgResult = bindMsgObj.getJSONObject("result");
int bindMsgResultCode = bindMsgResult.getInt("code");
if(bindMsgResultCode == 4)
{
SDKAPI.getIns().checkSnsInfo(snsInfo, (checkcode, checkMsg ) -> {
if(checkcode != SDKCallBack.CODE_SUCCESS)
{
Log.w(TAG, checkMsg);
String msg = "{\"code\":1, \"userId\": 0}";
UnityPlayer.UnitySendMessage(GOName, "BindCallback", msg);
return;
}
try {
tmpSnsInfo = snsInfo;
JSONObject checkMsgObj = new JSONObject(checkMsg);
JSONObject checkResult = checkMsgObj.getJSONObject("result");
String bindInfo = checkResult.getString("bindInfo");
int bindUserId = checkResult.getInt("userId");
JSONObject callbackMsg = new JSONObject();
callbackMsg.put("code", -1);
callbackMsg.put("userId", bindUserId);
callbackMsg.put("bindInfo", bindInfo);
UnityPlayer.UnitySendMessage(GOName, "BindCallback", callbackMsg.toString());
} catch (JSONException e) {
Log.i(TAG, e.toString());
String msg = "{\"code\":1, \"userId\": 0}";
UnityPlayer.UnitySendMessage(GOName, "BindCallback", msg);
}
});
}
else
{
Log.w(TAG, bindmsg);
String msg = "{\"code\":1, \"userId\": 0}";
UnityPlayer.UnitySendMessage(GOName, "BindCallback", msg);
}
}
catch (JSONException e)
{
Log.i(TAG, e.toString());
String msg = "{\"code\":1, \"userId\": 0}";
UnityPlayer.UnitySendMessage(GOName, "BindCallback", msg);
}
}
else
{
Log.i(TAG, String.format("LinkSns failed, code: %d, msg: %s", bindcode, bindmsg));
Log.w(TAG, bindmsg);
String msg = "{\"code\":1, \"userId\": 0}";
UnityPlayer.UnitySendMessage(GOName, "BindCallback", msg);
}
});
}
@@ -34,8 +105,32 @@ public class SnsTest {
});
}
public static void Unbind(String type, int userId)
public static void ChangeBind(int unbindUserId, int bindUserId)
{
if(tmpSnsInfo == null)
{
Log.i(TAG, "tmpSnsInfo is null");
return ;
}
SDKAPI.getIns().unbindBySnsId(tmpSnsInfo, String.valueOf(unbindUserId), (unbindCode, unbindMsg) -> {
Log.i(TAG, "unbindBySnsId code: " + unbindCode + " msg: " + unbindMsg);
if(unbindCode == SDKCallBack.CODE_SUCCESS)
{
SDKAPI.getIns().bindBySnsId(tmpSnsInfo, String.valueOf(bindUserId), (bindCode, bindMsg) -> {
Log.i(TAG, "bindBySnsId code: " + bindCode + " msg: " + bindMsg);
});
}
});
}
public static void RmSns()
{
tmpSnsInfo = null;
}
public static void GetSns(String accountType)
{
Log.i(TAG, "GetSns accountType: " + accountType);
}
}

View File

@@ -60,13 +60,18 @@ dependencies {
implementation "com.google.android.libraries.identity.googleid:googleid:1.1.1"
// Android Resolver Dependencies Start
implementation 'androidx.recyclerview:recyclerview:1.2.1' // Assets/MaxSdk/Mediation/Mintegral/Editor/Dependencies.xml:9
implementation 'com.android.installreferrer:installreferrer:2.1' // Assets/AppsFlyer/Editor/AppsFlyerDependencies.xml:7
implementation 'com.applovin.mediation:bytedance-adapter:8.1.0.3.0' // Assets/MaxSdk/Mediation/ByteDance/Editor/Dependencies.xml:8
implementation 'com.applovin.mediation:facebook-adapter:[6.18.0.1]' // Assets/MaxSdk/Mediation/Facebook/Editor/Dependencies.xml:8
implementation 'com.applovin.mediation:fyber-adapter:8.4.2.0' // Assets/MaxSdk/Mediation/Fyber/Editor/Dependencies.xml:4
implementation 'com.applovin.mediation:google-adapter:[23.6.0.1]' // Assets/MaxSdk/Mediation/Google/Editor/Dependencies.xml:5
implementation 'com.applovin.mediation:ironsource-adapter:8.6.1.0.0' // Assets/MaxSdk/Mediation/IronSource/Editor/Dependencies.xml:8
implementation 'com.applovin.mediation:mintegral-adapter:17.1.61.0' // Assets/MaxSdk/Mediation/Mintegral/Editor/Dependencies.xml:8
implementation 'com.applovin.mediation:moloco-adapter:4.9.0.0' // Assets/MaxSdk/Mediation/Moloco/Editor/Dependencies.xml:4
implementation 'com.applovin.mediation:unityads-adapter:4.12.3.0' // Assets/MaxSdk/Mediation/UnityAds/Editor/Dependencies.xml:4
implementation 'com.applovin.mediation:vungle-adapter:7.4.2.2' // Assets/MaxSdk/Mediation/Vungle/Editor/Dependencies.xml:4
implementation 'com.applovin.mediation:yandex-adapter:8.1.0.0' // Assets/MaxSdk/Mediation/Yandex/Editor/Dependencies.xml:4
implementation 'com.applovin:applovin-sdk:13.5.1' // Assets/MaxSdk/AppLovin/Editor/Dependencies.xml:4
implementation 'com.appsflyer:af-android-sdk:6.17.3' // Assets/AppsFlyer/Editor/AppsFlyerDependencies.xml:5
implementation 'com.appsflyer:purchase-connector:2.2.0' // Assets/AppsFlyer/Editor/AppsFlyerDependencies.xml:8

View File

@@ -18,9 +18,15 @@ dependencyResolutionManagement {
mavenCentral()
// Android Resolver Repos Start
def unityProjectPath = $/file:///**DIR_UNITYPROJECT**/$.replace("\\", "/")
maven {
url "https://artifact.bytedance.com/repository/pangle" // Assets/MaxSdk/Mediation/ByteDance/Editor/Dependencies.xml:8
}
maven {
url "https://android-sdk.is.com/" // Assets/MaxSdk/Mediation/IronSource/Editor/Dependencies.xml:8
}
maven {
url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea" // Assets/MaxSdk/Mediation/Mintegral/Editor/Dependencies.xml:8
}
mavenLocal()
// Android Resolver Repos End
flatDir {

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 813d4ac98b7f4092a3dddb472539f9d2
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -513,6 +513,127 @@ MonoBehaviour:
m_MipBias: 0
m_VarianceClampScale: 0.9
m_ContrastAdaptiveSharpening: 0
--- !u!1 &385330068
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 385330072}
- component: {fileID: 385330071}
- component: {fileID: 385330070}
- component: {fileID: 385330069}
m_Layer: 5
m_Name: changebind
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &385330069
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 385330068}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
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: 385330070}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!114 &385330070
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 385330068}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!222 &385330071
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 385330068}
m_CullTransparentMesh: 1
--- !u!224 &385330072
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 385330068}
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_ConstrainProportionsScale: 0
m_Children:
- {fileID: 465819806}
m_Father: {fileID: 1044920373}
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.5, y: 1}
--- !u!1 &393321311
GameObject:
m_ObjectHideFlags: 0
@@ -549,6 +670,85 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: -20, y: -20}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &465819805
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 465819806}
- component: {fileID: 465819808}
- component: {fileID: 465819807}
m_Layer: 5
m_Name: Text (Legacy)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &465819806
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 465819805}
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_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 385330072}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &465819807
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 465819805}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, 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_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 33
m_FontStyle: 0
m_BestFit: 1
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 0
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: CBind
--- !u!222 &465819808
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 465819805}
m_CullTransparentMesh: 1
--- !u!1 &471181945
GameObject:
m_ObjectHideFlags: 0
@@ -670,7 +870,7 @@ GameObject:
- component: {fileID: 514656874}
- component: {fileID: 514656873}
m_Layer: 5
m_Name: Check sns
m_Name: rm sns
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -1315,6 +1515,127 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 757589085}
m_CullTransparentMesh: 1
--- !u!1 &839565401
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 839565402}
- component: {fileID: 839565405}
- component: {fileID: 839565404}
- component: {fileID: 839565403}
m_Layer: 5
m_Name: LoginBySns
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &839565402
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 839565401}
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_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1387388941}
m_Father: {fileID: 1044920373}
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.5, y: 1}
--- !u!114 &839565403
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 839565401}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
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: 839565404}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!114 &839565404
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 839565401}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!222 &839565405
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 839565401}
m_CullTransparentMesh: 1
--- !u!1 &845062987
GameObject:
m_ObjectHideFlags: 0
@@ -1506,7 +1827,7 @@ MonoBehaviour:
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: CSNS
m_Text: RM SNS
--- !u!222 &875109649
CanvasRenderer:
m_ObjectHideFlags: 0
@@ -1706,11 +2027,13 @@ RectTransform:
- {fileID: 1956900235}
- {fileID: 1299164145}
- {fileID: 1472314934}
- {fileID: 839565402}
- {fileID: 1274822429}
- {fileID: 1095319726}
- {fileID: 514656872}
- {fileID: 599093755}
- {fileID: 730871748}
- {fileID: 385330072}
m_Father: {fileID: 1451597222}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
@@ -2276,6 +2599,87 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1299164144}
m_CullTransparentMesh: 1
--- !u!1 &1387388940
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1387388941}
- component: {fileID: 1387388943}
- component: {fileID: 1387388942}
m_Layer: 5
m_Name: Text (Legacy)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1387388941
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1387388940}
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_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 839565402}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1387388942
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1387388940}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, 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_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 33
m_FontStyle: 0
m_BestFit: 1
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 0
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: 'loginSNS
'
--- !u!222 &1387388943
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1387388940}
m_CullTransparentMesh: 1
--- !u!1 &1422461756
GameObject:
m_ObjectHideFlags: 0
@@ -2871,9 +3275,10 @@ MonoBehaviour:
loginBtn: {fileID: 1472314935}
logoutBtn: {fileID: 1274822430}
getSnsBtn: {fileID: 1095319727}
checkSnsBtn: {fileID: 514656873}
rmSnsBtn: {fileID: 514656873}
loginBySns: {fileID: 839565403}
bindBtn: {fileID: 599093756}
unbindBtn: {fileID: 730871749}
changeBindBtn: {fileID: 385330069}
--- !u!1 &1905578657
GameObject:
m_ObjectHideFlags: 0

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 9176f7473eb140f4af98b026642a0c8c
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
public static class AdReadyStateLog
{
public static string FormatReadyCheck(string format, string adUnitId, bool isReady)
{
string status = isReady ? "OK" : "WARNING";
return $"[{format}] Loaded callback ready check: adUnitId={adUnitId}, IsReady={isReady}, {status}";
}
}

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 8672a701b738a1c409125f98c38b79d7
guid: 6db64ebff4c74a8e987935dcdf9fd211
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -0,0 +1,423 @@
using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class AdTest : MonoBehaviour
{
[Header("Rewarded")]
[SerializeField] private string androidRewardedAdUnitId = "c6c49a100de8496c";
[SerializeField] private string iosRewardedAdUnitId = "ec3c8fd688cdb5e2";
[Header("Interstitial")]
[SerializeField] private string androidInterstitialAdUnitId = "0dcd37fa0885aa1f";
[SerializeField] private string iosInterstitialAdUnitId = "interstitial_test_ios";
[Header("UI")]
[SerializeField] private Button initMaxButton;
[SerializeField] private Button loadRewardedButton;
[SerializeField] private Button showRewardedButton;
[SerializeField] private Button forceShowRewardedButton;
[SerializeField] private Button checkRewardedReadyButton;
[SerializeField] private Button loadInterstitialButton;
[SerializeField] private Button showInterstitialButton;
[SerializeField] private Button forceShowInterstitialButton;
[SerializeField] private Button checkInterstitialReadyButton;
[SerializeField] private Button mediationDebuggerButton;
[SerializeField] private Button clearLogButton;
[SerializeField] private Text logText;
private const int MaxLogLines = 80;
private readonly List<string> logLines = new List<string>();
private bool callbacksRegistered;
private bool sdkInitializeRequested;
private int rewardedLoadFailCount;
private int interstitialLoadFailCount;
private string RewardedAdUnitId
{
get
{
#if UNITY_IOS
return iosRewardedAdUnitId;
#else
return androidRewardedAdUnitId;
#endif
}
}
private string InterstitialAdUnitId
{
get
{
#if UNITY_IOS
return iosInterstitialAdUnitId;
#else
return androidInterstitialAdUnitId;
#endif
}
}
public void Configure(
Button initMax,
Button loadRewarded,
Button showRewarded,
Button forceShowRewarded,
Button checkRewardedReady,
Button loadInterstitial,
Button showInterstitial,
Button forceShowInterstitial,
Button checkInterstitialReady,
Button mediationDebugger,
Button clearLog,
Text output)
{
initMaxButton = initMax;
loadRewardedButton = loadRewarded;
showRewardedButton = showRewarded;
forceShowRewardedButton = forceShowRewarded;
checkRewardedReadyButton = checkRewardedReady;
loadInterstitialButton = loadInterstitial;
showInterstitialButton = showInterstitial;
forceShowInterstitialButton = forceShowInterstitial;
checkInterstitialReadyButton = checkInterstitialReady;
mediationDebuggerButton = mediationDebugger;
clearLogButton = clearLog;
logText = output;
}
private void Start()
{
Bind(initMaxButton, InitMax);
Bind(loadRewardedButton, LoadRewarded);
Bind(showRewardedButton, ShowRewarded);
Bind(forceShowRewardedButton, ForceShowRewarded);
Bind(checkRewardedReadyButton, CheckRewardedReady);
Bind(loadInterstitialButton, LoadInterstitial);
Bind(showInterstitialButton, ShowInterstitial);
Bind(forceShowInterstitialButton, ForceShowInterstitial);
Bind(checkInterstitialReadyButton, CheckInterstitialReady);
Bind(mediationDebuggerButton, ShowMediationDebugger);
Bind(clearLogButton, ClearLog);
AppendLog("AdTest ready.");
}
private void OnDestroy()
{
if (!callbacksRegistered)
{
return;
}
MaxSdkCallbacks.OnSdkInitializedEvent -= OnSdkInitialized;
MaxSdkCallbacks.Rewarded.OnAdLoadedEvent -= OnRewardedAdLoaded;
MaxSdkCallbacks.Rewarded.OnAdLoadFailedEvent -= OnRewardedAdLoadFailed;
MaxSdkCallbacks.Rewarded.OnAdDisplayedEvent -= OnRewardedAdDisplayed;
MaxSdkCallbacks.Rewarded.OnAdDisplayFailedEvent -= OnRewardedAdDisplayFailed;
MaxSdkCallbacks.Rewarded.OnAdHiddenEvent -= OnRewardedAdHidden;
MaxSdkCallbacks.Rewarded.OnAdReceivedRewardEvent -= OnRewardedAdReceivedReward;
MaxSdkCallbacks.Rewarded.OnAdRevenuePaidEvent -= OnRewardedAdRevenuePaid;
MaxSdkCallbacks.Interstitial.OnAdLoadedEvent -= OnInterstitialAdLoaded;
MaxSdkCallbacks.Interstitial.OnAdLoadFailedEvent -= OnInterstitialAdLoadFailed;
MaxSdkCallbacks.Interstitial.OnAdDisplayedEvent -= OnInterstitialAdDisplayed;
MaxSdkCallbacks.Interstitial.OnAdDisplayFailedEvent -= OnInterstitialAdDisplayFailed;
MaxSdkCallbacks.Interstitial.OnAdHiddenEvent -= OnInterstitialAdHidden;
MaxSdkCallbacks.Interstitial.OnAdRevenuePaidEvent -= OnInterstitialAdRevenuePaid;
}
private void Bind(Button button, Action action)
{
if (button == null)
{
return;
}
button.onClick.AddListener(() => action());
}
public void InitMax()
{
RegisterCallbacks();
if (sdkInitializeRequested)
{
AppendLog("MAX initialization already requested.");
return;
}
sdkInitializeRequested = true;
MaxSdk.SetHasUserConsent(true);
MaxSdk.SetDoNotSell(false);
#if UNITY_IOS
MaxSdk.SetExtraParameter("disable_b2b_ad_unit_ids", "ec3c8fd688cdb5e2,00442f7962682a80");
#else
MaxSdk.SetExtraParameter("disable_b2b_ad_unit_ids", "c6c49a100de8496c,0dcd37fa0885aa1f");
#endif
MaxSdk.InitializeSdk();
AppendLog("MAX initialization requested.");
}
public void LoadRewarded()
{
EnsureInitialized();
AppendLog($"Load rewarded: {RewardedAdUnitId}");
MaxSdk.LoadRewardedAd(RewardedAdUnitId);
}
public void ShowRewarded()
{
EnsureInitialized();
bool isReady = MaxSdk.IsRewardedAdReady(RewardedAdUnitId);
AppendLog($"Show rewarded requested. IsReady={isReady}");
if (isReady)
{
MaxSdk.ShowRewardedAd(RewardedAdUnitId);
return;
}
LoadRewarded();
}
public void ForceShowRewarded()
{
EnsureInitialized();
AppendLog($"Force show rewarded without ready check: {RewardedAdUnitId}");
MaxSdk.ShowRewardedAd(RewardedAdUnitId);
}
public void CheckRewardedReady()
{
EnsureInitialized();
bool isReady = MaxSdk.IsRewardedAdReady(RewardedAdUnitId);
AppendReadyCheck("Rewarded", RewardedAdUnitId, isReady);
}
public void LoadInterstitial()
{
EnsureInitialized();
if (string.IsNullOrEmpty(InterstitialAdUnitId))
{
AppendWarning("Interstitial ad unit ID is empty.");
return;
}
AppendLog($"Load interstitial: {InterstitialAdUnitId}");
MaxSdk.LoadInterstitial(InterstitialAdUnitId);
}
public void ShowInterstitial()
{
EnsureInitialized();
if (string.IsNullOrEmpty(InterstitialAdUnitId))
{
AppendWarning("Interstitial ad unit ID is empty.");
return;
}
bool isReady = MaxSdk.IsInterstitialReady(InterstitialAdUnitId);
AppendLog($"Show interstitial requested. IsReady={isReady}");
if (isReady)
{
MaxSdk.ShowInterstitial(InterstitialAdUnitId);
return;
}
LoadInterstitial();
}
public void ForceShowInterstitial()
{
EnsureInitialized();
if (string.IsNullOrEmpty(InterstitialAdUnitId))
{
AppendWarning("Interstitial ad unit ID is empty.");
return;
}
AppendLog($"Force show interstitial without ready check: {InterstitialAdUnitId}");
MaxSdk.ShowInterstitial(InterstitialAdUnitId);
}
public void CheckInterstitialReady()
{
EnsureInitialized();
if (string.IsNullOrEmpty(InterstitialAdUnitId))
{
AppendWarning("Interstitial ad unit ID is empty.");
return;
}
bool isReady = MaxSdk.IsInterstitialReady(InterstitialAdUnitId);
AppendReadyCheck("Interstitial", InterstitialAdUnitId, isReady);
}
public void ClearLog()
{
logLines.Clear();
if (logText != null)
{
logText.text = string.Empty;
}
}
public void ShowMediationDebugger()
{
AppendLog("Show mediation debugger requested.");
MaxSdk.ShowMediationDebugger();
}
private void EnsureInitialized()
{
if (!sdkInitializeRequested)
{
InitMax();
}
}
private void RegisterCallbacks()
{
if (callbacksRegistered)
{
return;
}
callbacksRegistered = true;
MaxSdkCallbacks.OnSdkInitializedEvent += OnSdkInitialized;
MaxSdkCallbacks.Rewarded.OnAdLoadedEvent += OnRewardedAdLoaded;
MaxSdkCallbacks.Rewarded.OnAdLoadFailedEvent += OnRewardedAdLoadFailed;
MaxSdkCallbacks.Rewarded.OnAdDisplayedEvent += OnRewardedAdDisplayed;
MaxSdkCallbacks.Rewarded.OnAdDisplayFailedEvent += OnRewardedAdDisplayFailed;
MaxSdkCallbacks.Rewarded.OnAdHiddenEvent += OnRewardedAdHidden;
MaxSdkCallbacks.Rewarded.OnAdReceivedRewardEvent += OnRewardedAdReceivedReward;
MaxSdkCallbacks.Rewarded.OnAdRevenuePaidEvent += OnRewardedAdRevenuePaid;
MaxSdkCallbacks.Interstitial.OnAdLoadedEvent += OnInterstitialAdLoaded;
MaxSdkCallbacks.Interstitial.OnAdLoadFailedEvent += OnInterstitialAdLoadFailed;
MaxSdkCallbacks.Interstitial.OnAdDisplayedEvent += OnInterstitialAdDisplayed;
MaxSdkCallbacks.Interstitial.OnAdDisplayFailedEvent += OnInterstitialAdDisplayFailed;
MaxSdkCallbacks.Interstitial.OnAdHiddenEvent += OnInterstitialAdHidden;
MaxSdkCallbacks.Interstitial.OnAdRevenuePaidEvent += OnInterstitialAdRevenuePaid;
}
private void OnSdkInitialized(MaxSdkBase.SdkConfiguration configuration)
{
AppendLog($"MAX initialized. Success={configuration.IsSuccessfullyInitialized}");
}
private void OnRewardedAdLoaded(string adUnitId, MaxSdkBase.AdInfo adInfo)
{
rewardedLoadFailCount = 0;
AppendLog($"Rewarded loaded callback: {adUnitId}");
bool isReady = MaxSdk.IsRewardedAdReady(adUnitId);
AppendReadyCheck("Rewarded", adUnitId, isReady);
}
private void OnRewardedAdLoadFailed(string adUnitId, MaxSdkBase.ErrorInfo errorInfo)
{
rewardedLoadFailCount++;
AppendWarning($"Rewarded load failed: {adUnitId}, attempt={rewardedLoadFailCount}, message={errorInfo.Message}");
}
private void OnRewardedAdDisplayed(string adUnitId, MaxSdkBase.AdInfo adInfo)
{
AppendLog($"Rewarded displayed: {adUnitId}");
}
private void OnRewardedAdDisplayFailed(string adUnitId, MaxSdkBase.ErrorInfo errorInfo, MaxSdkBase.AdInfo adInfo)
{
AppendWarning($"Rewarded display failed: {adUnitId}, message={errorInfo.Message}");
LoadRewarded();
}
private void OnRewardedAdHidden(string adUnitId, MaxSdkBase.AdInfo adInfo)
{
AppendLog($"Rewarded hidden: {adUnitId}");
LoadRewarded();
}
private void OnRewardedAdReceivedReward(string adUnitId, MaxSdkBase.Reward reward, MaxSdkBase.AdInfo adInfo)
{
AppendLog($"Rewarded received reward: {adUnitId}, label={reward.Label}, amount={reward.Amount}");
}
private void OnRewardedAdRevenuePaid(string adUnitId, MaxSdkBase.AdInfo adInfo)
{
AppendLog($"Rewarded revenue paid: {adUnitId}, revenue={adInfo.Revenue}");
}
private void OnInterstitialAdLoaded(string adUnitId, MaxSdkBase.AdInfo adInfo)
{
interstitialLoadFailCount = 0;
AppendLog($"Interstitial loaded callback: {adUnitId}");
bool isReady = MaxSdk.IsInterstitialReady(adUnitId);
AppendReadyCheck("Interstitial", adUnitId, isReady);
}
private void OnInterstitialAdLoadFailed(string adUnitId, MaxSdkBase.ErrorInfo errorInfo)
{
interstitialLoadFailCount++;
AppendWarning($"Interstitial load failed: {adUnitId}, attempt={interstitialLoadFailCount}, message={errorInfo.Message}");
}
private void OnInterstitialAdDisplayed(string adUnitId, MaxSdkBase.AdInfo adInfo)
{
AppendLog($"Interstitial displayed: {adUnitId}");
}
private void OnInterstitialAdDisplayFailed(string adUnitId, MaxSdkBase.ErrorInfo errorInfo, MaxSdkBase.AdInfo adInfo)
{
AppendWarning($"Interstitial display failed: {adUnitId}, message={errorInfo.Message}");
LoadInterstitial();
}
private void OnInterstitialAdHidden(string adUnitId, MaxSdkBase.AdInfo adInfo)
{
AppendLog($"Interstitial hidden: {adUnitId}");
LoadInterstitial();
}
private void OnInterstitialAdRevenuePaid(string adUnitId, MaxSdkBase.AdInfo adInfo)
{
AppendLog($"Interstitial revenue paid: {adUnitId}, revenue={adInfo.Revenue}");
}
private void AppendReadyCheck(string format, string adUnitId, bool isReady)
{
string line = AdReadyStateLog.FormatReadyCheck(format, adUnitId, isReady);
if (isReady)
{
AppendLog(line);
}
else
{
AppendWarning(line);
}
}
private void AppendWarning(string message)
{
AppendLog(message, true);
}
private void AppendLog(string message, bool warning = false)
{
string line = $"[{DateTime.Now:HH:mm:ss}] {message}";
logLines.Add(line);
while (logLines.Count > MaxLogLines)
{
logLines.RemoveAt(0);
}
if (logText != null)
{
logText.text = string.Join("\n", logLines);
}
// This scene is for device-side manual QA, so the UI log is the source of truth.
}
}

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 00d9ffb1d338f3a47a581531161a43da
guid: 70a4079f02f94f47a9a065de6d76f8f2
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -0,0 +1,98 @@
using UnityEngine.UI;
using UnityEngine;
using UnityEngine.EventSystems;
public class AdTestSceneBootstrap : MonoBehaviour
{
private void Awake()
{
EnsureEventSystem();
AdTest adTest = GetComponent<AdTest>();
if (adTest == null)
{
adTest = gameObject.AddComponent<AdTest>();
}
adTest.Configure(
FindButton("InitMax", "Init"),
FindButton("LoadRewardedAd", "LoadRewarded", "Load Rewarded", "RewardedLoad"),
FindButton("RewardedAd", "Max", "ShowRewarded", "Show Rewarded", "RewardedShow"),
FindButton("ForceRewardedAd", "ForceRewarded", "Force Rewarded"),
FindButton("CheckRewardedReady", "CheckRewarded", "Check Rewarded", "RewardedReady"),
FindButton("LoadInterstitialAd", "LoadInterstitial", "Load Interstitial", "InterstitialLoad", "PayList"),
FindButton("ShowInterstitialAd", "ShowInterstitial", "Show Interstitial", "InterstitialShow", "Pay"),
FindButton("ForceInterstitialAd", "ForceInterstitial", "Force Interstitial"),
FindButton("CheckInterstitialReady", "CheckInterstitial", "Check Interstitial", "InterstitialReady"),
FindButton("MediationDebugger", "ATT", "Debugger", "Mediation Debugger"),
FindButton("ClearLog", "Clear Log"),
FindText("Message", "Log", "LogText"));
RenameButton("InitMax", "Init MAX");
RenameButton("LoadRewardedAd", "Load Reward");
RenameButton("CheckRewardedReady", "Check Reward");
RenameButton("RewardedAd", "Rewarded");
RenameButton("ForceRewardedAd", "Force Reward");
RenameButton("LoadInterstitialAd", "Load Inter");
RenameButton("CheckInterstitialReady", "Check Inter");
RenameButton("ShowInterstitialAd", "Show Inter");
RenameButton("ForceInterstitialAd", "Force Inter");
RenameButton("MediationDebugger", "Debugger");
RenameButton("ClearLog", "Clear Log");
}
private void EnsureEventSystem()
{
if (FindObjectOfType<EventSystem>() != null)
{
return;
}
GameObject eventSystem = new GameObject("EventSystem");
eventSystem.AddComponent<EventSystem>();
eventSystem.AddComponent<StandaloneInputModule>();
}
private Button FindButton(params string[] names)
{
foreach (string name in names)
{
GameObject target = GameObject.Find(name);
if (target != null && target.TryGetComponent(out Button button))
{
return button;
}
}
return null;
}
private Text FindText(params string[] names)
{
foreach (string name in names)
{
GameObject target = GameObject.Find(name);
if (target != null && target.TryGetComponent(out Text text))
{
return text;
}
}
return null;
}
private void RenameButton(string buttonName, string label)
{
GameObject target = GameObject.Find(buttonName);
if (target == null)
{
return;
}
Text text = target.GetComponentInChildren<Text>();
if (text != null)
{
text.text = label;
}
}
}

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: d7270087496e8e04a9f7984720cd2362
guid: 7f4c0e3f6b3d4d6b9b8a923dc1274d31
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -133,11 +133,16 @@ public class SDKTest : MonoBehaviour
MaxSdkCallbacks.OnSdkInitializedEvent += (MaxSdkBase.SdkConfiguration sdkConfiguration) =>
{
Debug.Log($"[MaxSdk::OnSdkInitializedEvent] Init:{sdkConfiguration.IsSuccessfullyInitialized}");
};
MaxSdk.SetHasUserConsent(true);
MaxSdk.SetDoNotSell(false);
MaxSdk.InitializeSdk();
}
};
MaxSdk.SetHasUserConsent(true);
MaxSdk.SetDoNotSell(false);
#if UNITY_IOS
MaxSdk.SetExtraParameter("disable_b2b_ad_unit_ids", "ec3c8fd688cdb5e2,00442f7962682a80");
#else
MaxSdk.SetExtraParameter("disable_b2b_ad_unit_ids", "c6c49a100de8496c,0dcd37fa0885aa1f");
#endif
MaxSdk.InitializeSdk();
}
private async void OnLogin(EAccoutType accoutType)
{

View File

@@ -1,6 +1,7 @@
using System;
using System.Collections;
using System.Collections.Generic;
using Newtonsoft.Json.Linq;
using tysdk;
using UnityEngine;
using UnityEngine.UI;
@@ -28,13 +29,17 @@ public class UnbindTest : MonoBehaviour
private Button getSnsBtn;
[SerializeField]
private Button checkSnsBtn;
private Button rmSnsBtn;
[SerializeField]
private Button loginBySns;
[SerializeField]
private Button bindBtn;
[SerializeField]
private Button unbindBtn;
private Button changeBindBtn;
private EAccoutType accoutType;
@@ -56,9 +61,10 @@ public class UnbindTest : MonoBehaviour
}); loginBtn.onClick.AddListener(OnLogin);
logoutBtn.onClick.AddListener(OnLogout);
getSnsBtn.onClick.AddListener(OnGetSns);
checkSnsBtn.onClick.AddListener(OnCheckSns);
rmSnsBtn.onClick.AddListener(OnRmSns);
loginBySns.onClick.AddListener(OnLoginBySns);
bindBtn.onClick.AddListener(OnBind);
unbindBtn.onClick.AddListener(OnUnbind);
changeBindBtn.onClick.AddListener(OnChangeBind);
Debug.Log("========== Init =============");
TYSdkFacade.Instance.Init();
Debug.Log($"AccoutType {accoutType}");
@@ -96,7 +102,14 @@ public class UnbindTest : MonoBehaviour
t.CallStatic("GetSns", accoutType.ToString());
}
private async void OnCheckSns()
private void OnRmSns()
{
Debug.Log("========== Get SNS =============");
using var t = new AndroidJavaClass(Cls);
t.CallStatic("RmSns") ;
}
private async void OnLoginBySns()
{
try
{
@@ -115,6 +128,7 @@ public class UnbindTest : MonoBehaviour
}
}
private int buserId;
private async void OnBind()
{
try
@@ -126,6 +140,7 @@ public class UnbindTest : MonoBehaviour
{
var info = await PlayFabTool.GetPFPlayerInfoBySDKId(linkResult.userId, "6DC6D");
Debug.Log(info?.ToString() ?? "[UnbindTest::OnBind] info is null");
buserId = linkResult.userId;
}
}
catch (Exception e)
@@ -134,21 +149,17 @@ public class UnbindTest : MonoBehaviour
}
}
public void BindCallback(string message)
private async void OnChangeBind()
{
}
private void OnUnbind()
{
using (var t = new AndroidJavaClass(Cls))
try
{
t.CallStatic("Unbind");
Debug.Log("========== Change Bind =============");
var result = await TYSdkFacade.Instance.ChangeLinkAccount(accoutType, buserId, loginInfo.userId);
Debug.Log($"Change Bind Result Code:{result.code}, UserId:{result.userId}, msg:{result.msg}");
}
catch (Exception e)
{
Debug.LogException(e);
}
}
public void UnbindCallback(string message)
{
}
}

View File

@@ -1,111 +0,0 @@
/*----------------------------------------------------------------
// Copyright (C) 2025 Beijing All rights reserved.
//
// Author: huachangmiao
// Create Date: 2025/04/11
// Module Describe: Hierarchy 右键菜单创建视频播放器
//----------------------------------------------------------------*/
using UnityEngine;
using UnityEditor;
using UnityEngine.UI;
public static class LeviathanVideoMenu
{
/// <summary>
/// 创建 UI 视频播放器 (RawImage)
/// </summary>
[MenuItem("GameObject/Leviathan Video/Leviathan Video Player (UI)", false, 10)]
private static void CreateUIVideoPlayer(MenuCommand menuCommand)
{
// 创建 GameObject
GameObject go = new GameObject("LeviathanVideoPlayer");
// 添加 RectTransformUI 组件需要)
RectTransform rectTransform = go.AddComponent<RectTransform>();
rectTransform.sizeDelta = new Vector2(400, 300);
// 添加 RawImage 组件LeviathanVideoDecoder 需要)
RawImage rawImage = go.AddComponent<RawImage>();
rawImage.color = Color.white;
// 添加视频解码器组件
go.AddComponent<LeviathanVideoDecoder>();
// 设置父物体
GameObjectUtility.SetParentAndAlign(go, menuCommand.context as GameObject);
// 如果没有父物体,尝试放到 Canvas 下
if (go.transform.parent == null)
{
Canvas canvas = Object.FindObjectOfType<Canvas>();
if (canvas != null)
{
go.transform.SetParent(canvas.transform, false);
}
else
{
// 如果没有 Canvas创建一个
GameObject canvasGO = new GameObject("Canvas");
canvas = canvasGO.AddComponent<Canvas>();
canvas.renderMode = RenderMode.ScreenSpaceOverlay;
canvasGO.AddComponent<CanvasScaler>();
canvasGO.AddComponent<GraphicRaycaster>();
go.transform.SetParent(canvas.transform, false);
}
}
// 注册撤销
Undo.RegisterCreatedObjectUndo(go, "Create Leviathan Video Player (UI)");
// 选中创建的对象
Selection.activeObject = go;
}
/// <summary>
/// 创建 3D 视频播放器 (Cube)
/// </summary>
[MenuItem("GameObject/Leviathan Video/Leviathan Video Player (3D Cube)", false, 11)]
private static void Create3DVideoPlayerCube(MenuCommand menuCommand)
{
// 创建 Cube
GameObject go = GameObject.CreatePrimitive(PrimitiveType.Cube);
go.name = "LeviathanVideoPlayer3D";
// 添加视频渲染器组件
go.AddComponent<LeviathanVideo3DRenderer>();
// 设置父物体
GameObjectUtility.SetParentAndAlign(go, menuCommand.context as GameObject);
// 注册撤销
Undo.RegisterCreatedObjectUndo(go, "Create Leviathan Video Player (3D Cube)");
// 选中创建的对象
Selection.activeObject = go;
}
/// <summary>
/// 创建 3D 视频播放器 (Quad/Plane)
/// </summary>
[MenuItem("GameObject/Leviathan Video/Leviathan Video Player (3D Quad)", false, 12)]
private static void Create3DVideoPlayerQuad(MenuCommand menuCommand)
{
// 创建 Quad
GameObject go = GameObject.CreatePrimitive(PrimitiveType.Quad);
go.name = "LeviathanVideoPlayer3D";
// 添加视频渲染器组件
go.AddComponent<LeviathanVideo3DRenderer>();
// 设置父物体
GameObjectUtility.SetParentAndAlign(go, menuCommand.context as GameObject);
// 注册撤销
Undo.RegisterCreatedObjectUndo(go, "Create Leviathan Video Player (3D Quad)");
// 选中创建的对象
Selection.activeObject = go;
}
}

View File

@@ -1,125 +0,0 @@
#if UNITY_WEBGL
using UnityEditor;
using UnityEditor.PackageManager;
using UnityEditor.PackageManager.Requests;
using UnityEngine;
using System.IO;
namespace LeviathanVideo.Editor
{
public static class WeChatMiniGameMenu
{
private const string SourcePath = "Assets/WX-WASM-SDK-V2-v0.1.32~";
private const string TargetPath = "Assets/WX-WASM-SDK-V2";
private const string LeviathanWasmPath = "Assets/WX-WASM-SDK-V2/Editor/template/minigame/leviathan.wasm.br";
private const string WeChatSDKGitUrl = "https://github.com/wechat-miniprogram/minigame-tuanjie-transform-sdk.git";
private static AddRequest _addRequest;
// 验证函数:只在 WX-WASM-SDK-V2 文件夹不存在时启用
[MenuItem("微信小游戏/[LeviathanVideo] SDK", true)]
public static bool ValidateInstallWeChatSDK()
{
return !Directory.Exists(TargetPath);
}
[MenuItem("微信小游戏/[LeviathanVideo] SDK", false)]
public static void InstallWeChatSDK()
{
Debug.Log($"[LeviathanVideo] 开始安装微信SDK: {WeChatSDKGitUrl}");
_addRequest = Client.Add(WeChatSDKGitUrl);
EditorApplication.update += OnInstallProgress;
}
private static void OnInstallProgress()
{
if (_addRequest == null || !_addRequest.IsCompleted)
return;
EditorApplication.update -= OnInstallProgress;
if (_addRequest.Status == StatusCode.Success)
{
Debug.Log($"[LeviathanVideo] 微信SDK安装成功: {_addRequest.Result.packageId}");
EditorUtility.DisplayDialog("安装成功",
$"微信小游戏SDK安装成功!\n\n包ID: {_addRequest.Result.packageId}\n\n请执行下一步操作:\n微信小游戏 -> [LeviathanVideo] ****首次安装微信SDK后需要执行此操作****",
"确定");
}
else if (_addRequest.Status >= StatusCode.Failure)
{
Debug.LogError($"[LeviathanVideo] 微信SDK安装失败: {_addRequest.Error.message}");
EditorUtility.DisplayDialog("安装失败", $"微信小游戏SDK安装失败!\n\n错误: {_addRequest.Error.message}", "确定");
}
_addRequest = null;
}
// 验证函数:只在 leviathan.wasm.br 文件不存在时启用
[MenuItem("微信小游戏/[LeviathanVideo] ****SDK后需要执行此操作**** ", true)]
public static bool ValidateCopyFiles()
{
// 需要 SDK 已安装 且 leviathan.wasm.br 文件不存在
return Directory.Exists(TargetPath) && !File.Exists(LeviathanWasmPath);
}
[MenuItem("微信小游戏/[LeviathanVideo] ****SDK后需要执行此操作**** ", false)]
public static void CopyFiles()
{
string sourcePath = Path.GetFullPath(SourcePath);
string targetPath = Path.GetFullPath(TargetPath);
if (!Directory.Exists(sourcePath))
{
EditorUtility.DisplayDialog("错误", $"源路径不存在: {sourcePath}", "确定");
return;
}
if (!Directory.Exists(targetPath))
{
EditorUtility.DisplayDialog("错误", $"目标路径不存在: {targetPath}", "确定");
return;
}
try
{
CopyDirectory(sourcePath, targetPath);
AssetDatabase.Refresh();
EditorUtility.DisplayDialog("完成", $"已将文件从\n{SourcePath}\n复制到\n{TargetPath}", "确定");
Debug.Log($"[Leviathan] 文件复制完成: {SourcePath} -> {TargetPath}");
}
catch (System.Exception e)
{
EditorUtility.DisplayDialog("错误", $"复制文件时出错: {e.Message}", "确定");
Debug.LogError($"[Leviathan] 复制文件失败: {e}");
}
}
private static void CopyDirectory(string sourceDir, string targetDir)
{
// 复制所有文件
foreach (string file in Directory.GetFiles(sourceDir))
{
string fileName = Path.GetFileName(file);
string destFile = Path.Combine(targetDir, fileName);
File.Copy(file, destFile, true);
Debug.Log($"[Leviathan] 复制文件: {fileName}");
}
// 递归复制所有子目录
foreach (string dir in Directory.GetDirectories(sourceDir))
{
string dirName = Path.GetFileName(dir);
string destDir = Path.Combine(targetDir, dirName);
if (!Directory.Exists(destDir))
{
Directory.CreateDirectory(destDir);
}
CopyDirectory(dir, destDir);
}
}
}
}
#endif

View File

@@ -1,629 +0,0 @@
/*----------------------------------------------------------------
// Copyright (C) 2025 Beijing All rights reserved.
//
// Author: huachangmiao
// Create Date: 2025/04/11
// Module Describe:
//----------------------------------------------------------------*/
using System;
namespace LeviathanVideo.Abstractions
{
public unsafe struct AVRational2 : IFixedArray<AVRational>
{
public static readonly int ArrayLength = 2;
public int Length => 2;
AVRational _0; AVRational _1;
public AVRational this[uint i]
{
get { if (i >= 2) throw new ArgumentOutOfRangeException(); fixed (AVRational* p0 = &_0) { return *(p0 + i); } }
set { if (i >= 2) throw new ArgumentOutOfRangeException(); fixed (AVRational* p0 = &_0) { *(p0 + i) = value; } }
}
public AVRational[] ToArray()
{
fixed (AVRational* p0 = &_0) { var a = new AVRational[2]; for (uint i = 0; i < 2; i++) a[i] = *(p0 + i); return a; }
}
public void UpdateFrom(AVRational[] array)
{
fixed (AVRational* p0 = &_0) { uint i = 0; foreach (var value in array) { *(p0 + i++) = value; if (i >= 2) return; } }
}
public static implicit operator AVRational[](AVRational2 @struct) => @struct.ToArray();
}
public unsafe struct short2 : IFixedArray<short>
{
public static readonly int ArrayLength = 2;
public int Length => 2;
fixed short _[2];
public short this[uint i]
{
get => _[i];
set => _[i] = value;
}
public short[] ToArray()
{
var a = new short[2]; for (uint i = 0; i < 2; i++) a[i] = _[i]; return a;
}
public void UpdateFrom(short[] array)
{
uint i = 0; foreach (var value in array) { _[i++] = value; if (i >= 2) return; }
}
public static implicit operator short[](short2 @struct) => @struct.ToArray();
}
public unsafe struct void_ptr2 : IFixedArray
{
public static readonly int ArrayLength = 2;
public int Length => 2;
void* _0; void* _1;
public void* this[uint i]
{
get { if (i >= 2) throw new ArgumentOutOfRangeException(); fixed (void** p0 = &_0) { return *(p0 + i); } }
set { if (i >= 2) throw new ArgumentOutOfRangeException(); fixed (void** p0 = &_0) { *(p0 + i) = value; } }
}
public void*[] ToArray()
{
fixed (void** p0 = &_0) { var a = new void*[2]; for (uint i = 0; i < 2; i++) a[i] = *(p0 + i); return a; }
}
public void UpdateFrom(void*[] array)
{
fixed (void** p0 = &_0) { uint i = 0; foreach (var value in array) { *(p0 + i++) = value; if (i >= 2) return; } }
}
public static implicit operator void*[](void_ptr2 @struct) => @struct.ToArray();
}
public unsafe struct AVHDRPlusColorTransformParams3 : IFixedArray<AVHDRPlusColorTransformParams>
{
public static readonly int ArrayLength = 3;
public int Length => 3;
AVHDRPlusColorTransformParams _0; AVHDRPlusColorTransformParams _1; AVHDRPlusColorTransformParams _2;
public AVHDRPlusColorTransformParams this[uint i]
{
get { if (i >= 3) throw new ArgumentOutOfRangeException(); fixed (AVHDRPlusColorTransformParams* p0 = &_0) { return *(p0 + i); } }
set { if (i >= 3) throw new ArgumentOutOfRangeException(); fixed (AVHDRPlusColorTransformParams* p0 = &_0) { *(p0 + i) = value; } }
}
public AVHDRPlusColorTransformParams[] ToArray()
{
fixed (AVHDRPlusColorTransformParams* p0 = &_0) { var a = new AVHDRPlusColorTransformParams[3]; for (uint i = 0; i < 3; i++) a[i] = *(p0 + i); return a; }
}
public void UpdateFrom(AVHDRPlusColorTransformParams[] array)
{
fixed (AVHDRPlusColorTransformParams* p0 = &_0) { uint i = 0; foreach (var value in array) { *(p0 + i++) = value; if (i >= 3) return; } }
}
public static implicit operator AVHDRPlusColorTransformParams[](AVHDRPlusColorTransformParams3 @struct) => @struct.ToArray();
}
public unsafe struct AVRational3 : IFixedArray<AVRational>
{
public static readonly int ArrayLength = 3;
public int Length => 3;
AVRational _0; AVRational _1; AVRational _2;
public AVRational this[uint i]
{
get { if (i >= 3) throw new ArgumentOutOfRangeException(); fixed (AVRational* p0 = &_0) { return *(p0 + i); } }
set { if (i >= 3) throw new ArgumentOutOfRangeException(); fixed (AVRational* p0 = &_0) { *(p0 + i) = value; } }
}
public AVRational[] ToArray()
{
fixed (AVRational* p0 = &_0) { var a = new AVRational[3]; for (uint i = 0; i < 3; i++) a[i] = *(p0 + i); return a; }
}
public void UpdateFrom(AVRational[] array)
{
fixed (AVRational* p0 = &_0) { uint i = 0; foreach (var value in array) { *(p0 + i++) = value; if (i >= 3) return; } }
}
public static implicit operator AVRational[](AVRational3 @struct) => @struct.ToArray();
}
public unsafe struct AVRational3x2 : IFixedArray<AVRational2>
{
public static readonly int ArrayLength = 3;
public int Length => 3;
AVRational2 _0; AVRational2 _1; AVRational2 _2;
public AVRational2 this[uint i]
{
get { if (i >= 3) throw new ArgumentOutOfRangeException(); fixed (AVRational2* p0 = &_0) { return *(p0 + i); } }
set { if (i >= 3) throw new ArgumentOutOfRangeException(); fixed (AVRational2* p0 = &_0) { *(p0 + i) = value; } }
}
public AVRational2[] ToArray()
{
fixed (AVRational2* p0 = &_0) { var a = new AVRational2[3]; for (uint i = 0; i < 3; i++) a[i] = *(p0 + i); return a; }
}
public void UpdateFrom(AVRational2[] array)
{
fixed (AVRational2* p0 = &_0) { uint i = 0; foreach (var value in array) { *(p0 + i++) = value; if (i >= 3) return; } }
}
public static implicit operator AVRational2[](AVRational3x2 @struct) => @struct.ToArray();
}
public unsafe struct byte_ptr3 : IFixedArray
{
public static readonly int ArrayLength = 3;
public int Length => 3;
byte* _0; byte* _1; byte* _2;
public byte* this[uint i]
{
get { if (i >= 3) throw new ArgumentOutOfRangeException(); fixed (byte** p0 = &_0) { return *(p0 + i); } }
set { if (i >= 3) throw new ArgumentOutOfRangeException(); fixed (byte** p0 = &_0) { *(p0 + i) = value; } }
}
public byte*[] ToArray()
{
fixed (byte** p0 = &_0) { var a = new byte*[3]; for (uint i = 0; i < 3; i++) a[i] = *(p0 + i); return a; }
}
public void UpdateFrom(byte*[] array)
{
fixed (byte** p0 = &_0) { uint i = 0; foreach (var value in array) { *(p0 + i++) = value; if (i >= 3) return; } }
}
public static implicit operator byte*[](byte_ptr3 @struct) => @struct.ToArray();
}
public unsafe struct int3 : IFixedArray<int>
{
public static readonly int ArrayLength = 3;
public int Length => 3;
fixed int _[3];
public int this[uint i]
{
get => _[i];
set => _[i] = value;
}
public int[] ToArray()
{
var a = new int[3]; for (uint i = 0; i < 3; i++) a[i] = _[i]; return a;
}
public void UpdateFrom(int[] array)
{
uint i = 0; foreach (var value in array) { _[i++] = value; if (i >= 3) return; }
}
public static implicit operator int[](int3 @struct) => @struct.ToArray();
}
public unsafe struct short3x2 : IFixedArray<short2>
{
public static readonly int ArrayLength = 3;
public int Length => 3;
short2 _0; short2 _1; short2 _2;
public short2 this[uint i]
{
get { if (i >= 3) throw new ArgumentOutOfRangeException(); fixed (short2* p0 = &_0) { return *(p0 + i); } }
set { if (i >= 3) throw new ArgumentOutOfRangeException(); fixed (short2* p0 = &_0) { *(p0 + i) = value; } }
}
public short2[] ToArray()
{
fixed (short2* p0 = &_0) { var a = new short2[3]; for (uint i = 0; i < 3; i++) a[i] = *(p0 + i); return a; }
}
public void UpdateFrom(short2[] array)
{
fixed (short2* p0 = &_0) { uint i = 0; foreach (var value in array) { *(p0 + i++) = value; if (i >= 3) return; } }
}
public static implicit operator short2[](short3x2 @struct) => @struct.ToArray();
}
public unsafe struct AVComponentDescriptor4 : IFixedArray<AVComponentDescriptor>
{
public static readonly int ArrayLength = 4;
public int Length => 4;
AVComponentDescriptor _0; AVComponentDescriptor _1; AVComponentDescriptor _2; AVComponentDescriptor _3;
public AVComponentDescriptor this[uint i]
{
get { if (i >= 4) throw new ArgumentOutOfRangeException(); fixed (AVComponentDescriptor* p0 = &_0) { return *(p0 + i); } }
set { if (i >= 4) throw new ArgumentOutOfRangeException(); fixed (AVComponentDescriptor* p0 = &_0) { *(p0 + i) = value; } }
}
public AVComponentDescriptor[] ToArray()
{
fixed (AVComponentDescriptor* p0 = &_0) { var a = new AVComponentDescriptor[4]; for (uint i = 0; i < 4; i++) a[i] = *(p0 + i); return a; }
}
public void UpdateFrom(AVComponentDescriptor[] array)
{
fixed (AVComponentDescriptor* p0 = &_0) { uint i = 0; foreach (var value in array) { *(p0 + i++) = value; if (i >= 4) return; } }
}
public static implicit operator AVComponentDescriptor[](AVComponentDescriptor4 @struct) => @struct.ToArray();
}
public unsafe struct byte_ptr4 : IFixedArray
{
public static readonly int ArrayLength = 4;
public int Length => 4;
byte* _0; byte* _1; byte* _2; byte* _3;
public byte* this[uint i]
{
get { if (i >= 4) throw new ArgumentOutOfRangeException(); fixed (byte** p0 = &_0) { return *(p0 + i); } }
set { if (i >= 4) throw new ArgumentOutOfRangeException(); fixed (byte** p0 = &_0) { *(p0 + i) = value; } }
}
public byte*[] ToArray()
{
fixed (byte** p0 = &_0) { var a = new byte*[4]; for (uint i = 0; i < 4; i++) a[i] = *(p0 + i); return a; }
}
public void UpdateFrom(byte*[] array)
{
fixed (byte** p0 = &_0) { uint i = 0; foreach (var value in array) { *(p0 + i++) = value; if (i >= 4) return; } }
}
public static implicit operator byte*[](byte_ptr4 @struct) => @struct.ToArray();
}
public unsafe struct byte4 : IFixedArray<byte>
{
public static readonly int ArrayLength = 4;
public int Length => 4;
fixed byte _[4];
public byte this[uint i]
{
get => _[i];
set => _[i] = value;
}
public byte[] ToArray()
{
var a = new byte[4]; for (uint i = 0; i < 4; i++) a[i] = _[i]; return a;
}
public void UpdateFrom(byte[] array)
{
uint i = 0; foreach (var value in array) { _[i++] = value; if (i >= 4) return; }
}
public static implicit operator byte[](byte4 @struct) => @struct.ToArray();
}
public unsafe struct int4 : IFixedArray<int>
{
public static readonly int ArrayLength = 4;
public int Length => 4;
fixed int _[4];
public int this[uint i]
{
get => _[i];
set => _[i] = value;
}
public int[] ToArray()
{
var a = new int[4]; for (uint i = 0; i < 4; i++) a[i] = _[i]; return a;
}
public void UpdateFrom(int[] array)
{
uint i = 0; foreach (var value in array) { _[i++] = value; if (i >= 4) return; }
}
public static implicit operator int[](int4 @struct) => @struct.ToArray();
}
public unsafe struct long4 : IFixedArray<long>
{
public static readonly int ArrayLength = 4;
public int Length => 4;
fixed long _[4];
public long this[uint i]
{
get => _[i];
set => _[i] = value;
}
public long[] ToArray()
{
var a = new long[4]; for (uint i = 0; i < 4; i++) a[i] = _[i]; return a;
}
public void UpdateFrom(long[] array)
{
uint i = 0; foreach (var value in array) { _[i++] = value; if (i >= 4) return; }
}
public static implicit operator long[](long4 @struct) => @struct.ToArray();
}
public unsafe struct uint4 : IFixedArray<uint>
{
public static readonly int ArrayLength = 4;
public int Length => 4;
fixed uint _[4];
public uint this[uint i]
{
get => _[i];
set => _[i] = value;
}
public uint[] ToArray()
{
var a = new uint[4]; for (uint i = 0; i < 4; i++) a[i] = _[i]; return a;
}
public void UpdateFrom(uint[] array)
{
uint i = 0; foreach (var value in array) { _[i++] = value; if (i >= 4) return; }
}
public static implicit operator uint[](uint4 @struct) => @struct.ToArray();
}
public unsafe struct ulong4 : IFixedArray<ulong>
{
public static readonly int ArrayLength = 4;
public int Length => 4;
fixed ulong _[4];
public ulong this[uint i]
{
get => _[i];
set => _[i] = value;
}
public ulong[] ToArray()
{
var a = new ulong[4]; for (uint i = 0; i < 4; i++) a[i] = _[i]; return a;
}
public void UpdateFrom(ulong[] array)
{
uint i = 0; foreach (var value in array) { _[i++] = value; if (i >= 4) return; }
}
public static implicit operator ulong[](ulong4 @struct) => @struct.ToArray();
}
public unsafe struct int7 : IFixedArray<int>
{
public static readonly int ArrayLength = 7;
public int Length => 7;
fixed int _[7];
public int this[uint i]
{
get => _[i];
set => _[i] = value;
}
public int[] ToArray()
{
var a = new int[7]; for (uint i = 0; i < 7; i++) a[i] = _[i]; return a;
}
public void UpdateFrom(int[] array)
{
uint i = 0; foreach (var value in array) { _[i++] = value; if (i >= 7) return; }
}
public static implicit operator int[](int7 @struct) => @struct.ToArray();
}
public unsafe struct AVBufferRef_ptr8 : IFixedArray
{
public static readonly int ArrayLength = 8;
public int Length => 8;
AVBufferRef* _0; AVBufferRef* _1; AVBufferRef* _2; AVBufferRef* _3; AVBufferRef* _4; AVBufferRef* _5; AVBufferRef* _6; AVBufferRef* _7;
public AVBufferRef* this[uint i]
{
get { if (i >= 8) throw new ArgumentOutOfRangeException(); fixed (AVBufferRef** p0 = &_0) { return *(p0 + i); } }
set { if (i >= 8) throw new ArgumentOutOfRangeException(); fixed (AVBufferRef** p0 = &_0) { *(p0 + i) = value; } }
}
public AVBufferRef*[] ToArray()
{
fixed (AVBufferRef** p0 = &_0) { var a = new AVBufferRef*[8]; for (uint i = 0; i < 8; i++) a[i] = *(p0 + i); return a; }
}
public void UpdateFrom(AVBufferRef*[] array)
{
fixed (AVBufferRef** p0 = &_0) { uint i = 0; foreach (var value in array) { *(p0 + i++) = value; if (i >= 8) return; } }
}
public static implicit operator AVBufferRef*[](AVBufferRef_ptr8 @struct) => @struct.ToArray();
}
public unsafe struct byte_ptr8 : IFixedArray
{
public static readonly int ArrayLength = 8;
public int Length => 8;
byte* _0; byte* _1; byte* _2; byte* _3; byte* _4; byte* _5; byte* _6; byte* _7;
public byte* this[uint i]
{
get { if (i >= 8) throw new ArgumentOutOfRangeException(); fixed (byte** p0 = &_0) { return *(p0 + i); } }
set { if (i >= 8) throw new ArgumentOutOfRangeException(); fixed (byte** p0 = &_0) { *(p0 + i) = value; } }
}
public byte*[] ToArray()
{
fixed (byte** p0 = &_0) { var a = new byte*[8]; for (uint i = 0; i < 8; i++) a[i] = *(p0 + i); return a; }
}
public void UpdateFrom(byte*[] array)
{
fixed (byte** p0 = &_0) { uint i = 0; foreach (var value in array) { *(p0 + i++) = value; if (i >= 8) return; } }
}
public static implicit operator byte*[](byte_ptr8 @struct) => @struct.ToArray();
}
public unsafe struct byte8 : IFixedArray<byte>
{
public static readonly int ArrayLength = 8;
public int Length => 8;
fixed byte _[8];
public byte this[uint i]
{
get => _[i];
set => _[i] = value;
}
public byte[] ToArray()
{
var a = new byte[8]; for (uint i = 0; i < 8; i++) a[i] = _[i]; return a;
}
public void UpdateFrom(byte[] array)
{
uint i = 0; foreach (var value in array) { _[i++] = value; if (i >= 8) return; }
}
public static implicit operator byte[](byte8 @struct) => @struct.ToArray();
}
public unsafe struct int8 : IFixedArray<int>
{
public static readonly int ArrayLength = 8;
public int Length => 8;
fixed int _[8];
public int this[uint i]
{
get => _[i];
set => _[i] = value;
}
public int[] ToArray()
{
var a = new int[8]; for (uint i = 0; i < 8; i++) a[i] = _[i]; return a;
}
public void UpdateFrom(int[] array)
{
uint i = 0; foreach (var value in array) { _[i++] = value; if (i >= 8) return; }
}
public static implicit operator int[](int8 @struct) => @struct.ToArray();
}
public unsafe struct ulong8 : IFixedArray<ulong>
{
public static readonly int ArrayLength = 8;
public int Length => 8;
fixed ulong _[8];
public ulong this[uint i]
{
get => _[i];
set => _[i] = value;
}
public ulong[] ToArray()
{
var a = new ulong[8]; for (uint i = 0; i < 8; i++) a[i] = _[i]; return a;
}
public void UpdateFrom(ulong[] array)
{
uint i = 0; foreach (var value in array) { _[i++] = value; if (i >= 8) return; }
}
public static implicit operator ulong[](ulong8 @struct) => @struct.ToArray();
}
public unsafe struct int9 : IFixedArray<int>
{
public static readonly int ArrayLength = 9;
public int Length => 9;
fixed int _[9];
public int this[uint i]
{
get => _[i];
set => _[i] = value;
}
public int[] ToArray()
{
var a = new int[9]; for (uint i = 0; i < 9; i++) a[i] = _[i]; return a;
}
public void UpdateFrom(int[] array)
{
uint i = 0; foreach (var value in array) { _[i++] = value; if (i >= 9) return; }
}
public static implicit operator int[](int9 @struct) => @struct.ToArray();
}
public unsafe struct AVHDRPlusPercentile15 : IFixedArray<AVHDRPlusPercentile>
{
public static readonly int ArrayLength = 15;
public int Length => 15;
AVHDRPlusPercentile _0; AVHDRPlusPercentile _1; AVHDRPlusPercentile _2; AVHDRPlusPercentile _3; AVHDRPlusPercentile _4; AVHDRPlusPercentile _5; AVHDRPlusPercentile _6; AVHDRPlusPercentile _7; AVHDRPlusPercentile _8; AVHDRPlusPercentile _9; AVHDRPlusPercentile _10; AVHDRPlusPercentile _11; AVHDRPlusPercentile _12; AVHDRPlusPercentile _13; AVHDRPlusPercentile _14;
public AVHDRPlusPercentile this[uint i]
{
get { if (i >= 15) throw new ArgumentOutOfRangeException(); fixed (AVHDRPlusPercentile* p0 = &_0) { return *(p0 + i); } }
set { if (i >= 15) throw new ArgumentOutOfRangeException(); fixed (AVHDRPlusPercentile* p0 = &_0) { *(p0 + i) = value; } }
}
public AVHDRPlusPercentile[] ToArray()
{
fixed (AVHDRPlusPercentile* p0 = &_0) { var a = new AVHDRPlusPercentile[15]; for (uint i = 0; i < 15; i++) a[i] = *(p0 + i); return a; }
}
public void UpdateFrom(AVHDRPlusPercentile[] array)
{
fixed (AVHDRPlusPercentile* p0 = &_0) { uint i = 0; foreach (var value in array) { *(p0 + i++) = value; if (i >= 15) return; } }
}
public static implicit operator AVHDRPlusPercentile[](AVHDRPlusPercentile15 @struct) => @struct.ToArray();
}
public unsafe struct AVRational15 : IFixedArray<AVRational>
{
public static readonly int ArrayLength = 15;
public int Length => 15;
AVRational _0; AVRational _1; AVRational _2; AVRational _3; AVRational _4; AVRational _5; AVRational _6; AVRational _7; AVRational _8; AVRational _9; AVRational _10; AVRational _11; AVRational _12; AVRational _13; AVRational _14;
public AVRational this[uint i]
{
get { if (i >= 15) throw new ArgumentOutOfRangeException(); fixed (AVRational* p0 = &_0) { return *(p0 + i); } }
set { if (i >= 15) throw new ArgumentOutOfRangeException(); fixed (AVRational* p0 = &_0) { *(p0 + i) = value; } }
}
public AVRational[] ToArray()
{
fixed (AVRational* p0 = &_0) { var a = new AVRational[15]; for (uint i = 0; i < 15; i++) a[i] = *(p0 + i); return a; }
}
public void UpdateFrom(AVRational[] array)
{
fixed (AVRational* p0 = &_0) { uint i = 0; foreach (var value in array) { *(p0 + i++) = value; if (i >= 15) return; } }
}
public static implicit operator AVRational[](AVRational15 @struct) => @struct.ToArray();
}
public unsafe struct byte16 : IFixedArray<byte>
{
public static readonly int ArrayLength = 16;
public int Length => 16;
fixed byte _[16];
public byte this[uint i]
{
get => _[i];
set => _[i] = value;
}
public byte[] ToArray()
{
var a = new byte[16]; for (uint i = 0; i < 16; i++) a[i] = _[i]; return a;
}
public void UpdateFrom(byte[] array)
{
uint i = 0; foreach (var value in array) { _[i++] = value; if (i >= 16) return; }
}
public static implicit operator byte[](byte16 @struct) => @struct.ToArray();
}
public unsafe struct AVRational25 : IFixedArray<AVRational>
{
public static readonly int ArrayLength = 25;
public int Length => 25;
AVRational _0; AVRational _1; AVRational _2; AVRational _3; AVRational _4; AVRational _5; AVRational _6; AVRational _7; AVRational _8; AVRational _9; AVRational _10; AVRational _11; AVRational _12; AVRational _13; AVRational _14; AVRational _15; AVRational _16; AVRational _17; AVRational _18; AVRational _19; AVRational _20; AVRational _21; AVRational _22; AVRational _23; AVRational _24;
public AVRational this[uint i]
{
get { if (i >= 25) throw new ArgumentOutOfRangeException(); fixed (AVRational* p0 = &_0) { return *(p0 + i); } }
set { if (i >= 25) throw new ArgumentOutOfRangeException(); fixed (AVRational* p0 = &_0) { *(p0 + i) = value; } }
}
public AVRational[] ToArray()
{
fixed (AVRational* p0 = &_0) { var a = new AVRational[25]; for (uint i = 0; i < 25; i++) a[i] = *(p0 + i); return a; }
}
public void UpdateFrom(AVRational[] array)
{
fixed (AVRational* p0 = &_0) { uint i = 0; foreach (var value in array) { *(p0 + i++) = value; if (i >= 25) return; } }
}
public static implicit operator AVRational[](AVRational25 @struct) => @struct.ToArray();
}
public unsafe struct AVRational25x25 : IFixedArray<AVRational25>
{
public static readonly int ArrayLength = 25;
public int Length => 25;
AVRational25 _0; AVRational25 _1; AVRational25 _2; AVRational25 _3; AVRational25 _4; AVRational25 _5; AVRational25 _6; AVRational25 _7; AVRational25 _8; AVRational25 _9; AVRational25 _10; AVRational25 _11; AVRational25 _12; AVRational25 _13; AVRational25 _14; AVRational25 _15; AVRational25 _16; AVRational25 _17; AVRational25 _18; AVRational25 _19; AVRational25 _20; AVRational25 _21; AVRational25 _22; AVRational25 _23; AVRational25 _24;
public AVRational25 this[uint i]
{
get { if (i >= 25) throw new ArgumentOutOfRangeException(); fixed (AVRational25* p0 = &_0) { return *(p0 + i); } }
set { if (i >= 25) throw new ArgumentOutOfRangeException(); fixed (AVRational25* p0 = &_0) { *(p0 + i) = value; } }
}
public AVRational25[] ToArray()
{
fixed (AVRational25* p0 = &_0) { var a = new AVRational25[25]; for (uint i = 0; i < 25; i++) a[i] = *(p0 + i); return a; }
}
public void UpdateFrom(AVRational25[] array)
{
fixed (AVRational25* p0 = &_0) { uint i = 0; foreach (var value in array) { *(p0 + i++) = value; if (i >= 25) return; } }
}
public static implicit operator AVRational25[](AVRational25x25 @struct) => @struct.ToArray();
}
}

View File

@@ -1,33 +0,0 @@
/*----------------------------------------------------------------
// Copyright (C) 2025 Beijing All rights reserved.
//
// Author: huachangmiao
// Create Date: 2025/04/11
// Module Describe:
//----------------------------------------------------------------*/
using System;
using System.Runtime.InteropServices;
namespace LeviathanVideo.Abstractions
{
public class ConstCharPtrMarshaler : ICustomMarshaler
{
private static readonly ConstCharPtrMarshaler Instance = new ConstCharPtrMarshaler();
public object MarshalNativeToManaged(IntPtr pNativeData) => Marshal.PtrToStringAnsi(pNativeData);
public IntPtr MarshalManagedToNative(object managedObj) => IntPtr.Zero;
public void CleanUpNativeData(IntPtr pNativeData)
{
}
public void CleanUpManagedData(object managedObj)
{
}
public int GetNativeDataSize() => IntPtr.Size;
public static ICustomMarshaler GetInstance(string cookie) => Instance;
}
}

View File

@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: a6182afb215f53b409c298aeb135d0a9
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,460 +0,0 @@
/*----------------------------------------------------------------
// Copyright (C) 2025 Beijing All rights reserved.
//
// Author: huachangmiao
// Create Date: 2025/04/11
// Module Describe:
//----------------------------------------------------------------*/
using System;
using System.Runtime.InteropServices;
namespace LeviathanVideo.Abstractions
{
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate int _query_func(AVFilterContext* @p0);
public unsafe struct _query_func_func
{
public IntPtr Pointer;
public static implicit operator _query_func_func(_query_func func) => new _query_func_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate void av_buffer_create_free(void* @opaque, byte* @data);
public unsafe struct av_buffer_create_free_func
{
public IntPtr Pointer;
public static implicit operator av_buffer_create_free_func(av_buffer_create_free func) => new av_buffer_create_free_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate AVBufferRef* av_buffer_pool_init_alloc(ulong @size);
public unsafe struct av_buffer_pool_init_alloc_func
{
public IntPtr Pointer;
public static implicit operator av_buffer_pool_init_alloc_func(av_buffer_pool_init_alloc func) => new av_buffer_pool_init_alloc_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate AVBufferRef* av_buffer_pool_init2_alloc(void* @opaque, ulong @size);
public unsafe struct av_buffer_pool_init2_alloc_func
{
public IntPtr Pointer;
public static implicit operator av_buffer_pool_init2_alloc_func(av_buffer_pool_init2_alloc func) => new av_buffer_pool_init2_alloc_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate void av_buffer_pool_init2_pool_free(void* @opaque);
public unsafe struct av_buffer_pool_init2_pool_free_func
{
public IntPtr Pointer;
public static implicit operator av_buffer_pool_init2_pool_free_func(av_buffer_pool_init2_pool_free func) => new av_buffer_pool_init2_pool_free_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate void av_log_set_callback_callback(void* @p0, int @p1,
#if NETSTANDARD2_1_OR_GREATER
[MarshalAs(UnmanagedType.LPUTF8Str)]
#else
[MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8Marshaler))]
#endif
string @p2, byte* @p3);
public unsafe struct av_log_set_callback_callback_func
{
public IntPtr Pointer;
public static implicit operator av_log_set_callback_callback_func(av_log_set_callback_callback func) => new av_log_set_callback_callback_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate int av_tree_enumerate_cmp(void* @opaque, void* @elem);
public unsafe struct av_tree_enumerate_cmp_func
{
public IntPtr Pointer;
public static implicit operator av_tree_enumerate_cmp_func(av_tree_enumerate_cmp func) => new av_tree_enumerate_cmp_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate int av_tree_enumerate_enu(void* @opaque, void* @elem);
public unsafe struct av_tree_enumerate_enu_func
{
public IntPtr Pointer;
public static implicit operator av_tree_enumerate_enu_func(av_tree_enumerate_enu func) => new av_tree_enumerate_enu_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate int av_tree_find_cmp(void* @key, void* @b);
public unsafe struct av_tree_find_cmp_func
{
public IntPtr Pointer;
public static implicit operator av_tree_find_cmp_func(av_tree_find_cmp func) => new av_tree_find_cmp_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate int av_tree_insert_cmp(void* @key, void* @b);
public unsafe struct av_tree_insert_cmp_func
{
public IntPtr Pointer;
public static implicit operator av_tree_insert_cmp_func(av_tree_insert_cmp func) => new av_tree_insert_cmp_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate AVClass* AVClass_child_class_iterate(void** @iter);
public unsafe struct AVClass_child_class_iterate_func
{
public IntPtr Pointer;
public static implicit operator AVClass_child_class_iterate_func(AVClass_child_class_iterate func) => new AVClass_child_class_iterate_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate void* AVClass_child_next(void* @obj, void* @prev);
public unsafe struct AVClass_child_next_func
{
public IntPtr Pointer;
public static implicit operator AVClass_child_next_func(AVClass_child_next func) => new AVClass_child_next_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate AVClassCategory AVClass_get_category(void* @ctx);
public unsafe struct AVClass_get_category_func
{
public IntPtr Pointer;
public static implicit operator AVClass_get_category_func(AVClass_get_category func) => new AVClass_get_category_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate string AVClass_item_name(void* @ctx);
public unsafe struct AVClass_item_name_func
{
public IntPtr Pointer;
public static implicit operator AVClass_item_name_func(AVClass_item_name func) => new AVClass_item_name_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate int AVClass_query_ranges(AVOptionRanges** @p0, void* @obj,
#if NETSTANDARD2_1_OR_GREATER
[MarshalAs(UnmanagedType.LPUTF8Str)]
#else
[MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8Marshaler))]
#endif
string @key, int @flags);
public unsafe struct AVClass_query_ranges_func
{
public IntPtr Pointer;
public static implicit operator AVClass_query_ranges_func(AVClass_query_ranges func) => new AVClass_query_ranges_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate int avcodec_default_execute_func(AVCodecContext* @c2, void* @arg2);
public unsafe struct avcodec_default_execute_func_func
{
public IntPtr Pointer;
public static implicit operator avcodec_default_execute_func_func(avcodec_default_execute_func func) => new avcodec_default_execute_func_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate int avcodec_default_execute2_func(AVCodecContext* @c2, void* @arg2, int @p2, int @p3);
public unsafe struct avcodec_default_execute2_func_func
{
public IntPtr Pointer;
public static implicit operator avcodec_default_execute2_func_func(avcodec_default_execute2_func func) => new avcodec_default_execute2_func_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate void AVCodecContext_draw_horiz_band(AVCodecContext* @s, AVFrame* @src, ref int8 @offset, int @y, int @type, int @height);
public unsafe struct AVCodecContext_draw_horiz_band_func
{
public IntPtr Pointer;
public static implicit operator AVCodecContext_draw_horiz_band_func(AVCodecContext_draw_horiz_band func) => new AVCodecContext_draw_horiz_band_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate int AVCodecContext_execute(AVCodecContext* @c, func_func @func, void* @arg2, int* @ret, int @count, int @size);
public unsafe struct AVCodecContext_execute_func
{
public IntPtr Pointer;
public static implicit operator AVCodecContext_execute_func(AVCodecContext_execute func) => new AVCodecContext_execute_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate int AVCodecContext_execute2(AVCodecContext* @c, func_func @func, void* @arg2, int* @ret, int @count);
public unsafe struct AVCodecContext_execute2_func
{
public IntPtr Pointer;
public static implicit operator AVCodecContext_execute2_func(AVCodecContext_execute2 func) => new AVCodecContext_execute2_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate int AVCodecContext_get_buffer2(AVCodecContext* @s, AVFrame* @frame, int @flags);
public unsafe struct AVCodecContext_get_buffer2_func
{
public IntPtr Pointer;
public static implicit operator AVCodecContext_get_buffer2_func(AVCodecContext_get_buffer2 func) => new AVCodecContext_get_buffer2_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate int AVCodecContext_get_encode_buffer(AVCodecContext* @s, AVPacket* @pkt, int @flags);
public unsafe struct AVCodecContext_get_encode_buffer_func
{
public IntPtr Pointer;
public static implicit operator AVCodecContext_get_encode_buffer_func(AVCodecContext_get_encode_buffer func) => new AVCodecContext_get_encode_buffer_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate AVPixelFormat AVCodecContext_get_format(AVCodecContext* @s, AVPixelFormat* @fmt);
public unsafe struct AVCodecContext_get_format_func
{
public IntPtr Pointer;
public static implicit operator AVCodecContext_get_format_func(AVCodecContext_get_format func) => new AVCodecContext_get_format_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate void AVCodecParser_parser_close(AVCodecParserContext* @s);
public unsafe struct AVCodecParser_parser_close_func
{
public IntPtr Pointer;
public static implicit operator AVCodecParser_parser_close_func(AVCodecParser_parser_close func) => new AVCodecParser_parser_close_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate int AVCodecParser_parser_init(AVCodecParserContext* @s);
public unsafe struct AVCodecParser_parser_init_func
{
public IntPtr Pointer;
public static implicit operator AVCodecParser_parser_init_func(AVCodecParser_parser_init func) => new AVCodecParser_parser_init_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate int AVCodecParser_parser_parse(AVCodecParserContext* @s, AVCodecContext* @avctx, byte** @poutbuf, int* @poutbuf_size, byte* @buf, int @buf_size);
public unsafe struct AVCodecParser_parser_parse_func
{
public IntPtr Pointer;
public static implicit operator AVCodecParser_parser_parse_func(AVCodecParser_parser_parse func) => new AVCodecParser_parser_parse_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate int AVCodecParser_split(AVCodecContext* @avctx, byte* @buf, int @buf_size);
public unsafe struct AVCodecParser_split_func
{
public IntPtr Pointer;
public static implicit operator AVCodecParser_split_func(AVCodecParser_split func) => new AVCodecParser_split_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate void AVD3D11VADeviceContext_lock(void* @lock_ctx);
public unsafe struct AVD3D11VADeviceContext_lock_func
{
public IntPtr Pointer;
public static implicit operator AVD3D11VADeviceContext_lock_func(AVD3D11VADeviceContext_lock func) => new AVD3D11VADeviceContext_lock_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate void AVD3D11VADeviceContext_unlock(void* @lock_ctx);
public unsafe struct AVD3D11VADeviceContext_unlock_func
{
public IntPtr Pointer;
public static implicit operator AVD3D11VADeviceContext_unlock_func(AVD3D11VADeviceContext_unlock func) => new AVD3D11VADeviceContext_unlock_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate int AVFilter_activate(AVFilterContext* @ctx);
public unsafe struct AVFilter_activate_func
{
public IntPtr Pointer;
public static implicit operator AVFilter_activate_func(AVFilter_activate func) => new AVFilter_activate_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate int AVFilter_init(AVFilterContext* @ctx);
public unsafe struct AVFilter_init_func
{
public IntPtr Pointer;
public static implicit operator AVFilter_init_func(AVFilter_init func) => new AVFilter_init_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate int AVFilter_preinit(AVFilterContext* @ctx);
public unsafe struct AVFilter_preinit_func
{
public IntPtr Pointer;
public static implicit operator AVFilter_preinit_func(AVFilter_preinit func) => new AVFilter_preinit_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate int AVFilter_process_command(AVFilterContext* @p0,
#if NETSTANDARD2_1_OR_GREATER
[MarshalAs(UnmanagedType.LPUTF8Str)]
#else
[MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8Marshaler))]
#endif
string @cmd,
#if NETSTANDARD2_1_OR_GREATER
[MarshalAs(UnmanagedType.LPUTF8Str)]
#else
[MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8Marshaler))]
#endif
string @arg, byte* @res, int @res_len, int @flags);
public unsafe struct AVFilter_process_command_func
{
public IntPtr Pointer;
public static implicit operator AVFilter_process_command_func(AVFilter_process_command func) => new AVFilter_process_command_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate void AVFilter_uninit(AVFilterContext* @ctx);
public unsafe struct AVFilter_uninit_func
{
public IntPtr Pointer;
public static implicit operator AVFilter_uninit_func(AVFilter_uninit func) => new AVFilter_uninit_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate int AVFilterGraph_execute(AVFilterContext* @ctx, func_func @func, void* @arg, int* @ret, int @nb_jobs);
public unsafe struct AVFilterGraph_execute_func
{
public IntPtr Pointer;
public static implicit operator AVFilterGraph_execute_func(AVFilterGraph_execute func) => new AVFilterGraph_execute_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate int AVFormatContext_control_message_cb(AVFormatContext* @s, int @type, void* @data, ulong @data_size);
public unsafe struct AVFormatContext_control_message_cb_func
{
public IntPtr Pointer;
public static implicit operator AVFormatContext_control_message_cb_func(AVFormatContext_control_message_cb func) => new AVFormatContext_control_message_cb_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate int AVFormatContext_io_close2(AVFormatContext* @s, AVIOContext* @pb);
public unsafe struct AVFormatContext_io_close2_func
{
public IntPtr Pointer;
public static implicit operator AVFormatContext_io_close2_func(AVFormatContext_io_close2 func) => new AVFormatContext_io_close2_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate int AVFormatContext_io_open(AVFormatContext* @s, AVIOContext** @pb,
#if NETSTANDARD2_1_OR_GREATER
[MarshalAs(UnmanagedType.LPUTF8Str)]
#else
[MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8Marshaler))]
#endif
string @url, int @flags, AVDictionary** @options);
public unsafe struct AVFormatContext_io_open_func
{
public IntPtr Pointer;
public static implicit operator AVFormatContext_io_open_func(AVFormatContext_io_open func) => new AVFormatContext_io_open_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate void AVHWDeviceContext_free(AVHWDeviceContext* @ctx);
public unsafe struct AVHWDeviceContext_free_func
{
public IntPtr Pointer;
public static implicit operator AVHWDeviceContext_free_func(AVHWDeviceContext_free func) => new AVHWDeviceContext_free_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate void AVHWFramesContext_free(AVHWFramesContext* @ctx);
public unsafe struct AVHWFramesContext_free_func
{
public IntPtr Pointer;
public static implicit operator AVHWFramesContext_free_func(AVHWFramesContext_free func) => new AVHWFramesContext_free_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate int avio_alloc_context_read_packet(void* @opaque, byte* @buf, int @buf_size);
public unsafe struct avio_alloc_context_read_packet_func
{
public IntPtr Pointer;
public static implicit operator avio_alloc_context_read_packet_func(avio_alloc_context_read_packet func) => new avio_alloc_context_read_packet_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate long avio_alloc_context_seek(void* @opaque, long @offset, int @whence);
public unsafe struct avio_alloc_context_seek_func
{
public IntPtr Pointer;
public static implicit operator avio_alloc_context_seek_func(avio_alloc_context_seek func) => new avio_alloc_context_seek_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate int avio_alloc_context_write_packet(void* @opaque, byte* @buf, int @buf_size);
public unsafe struct avio_alloc_context_write_packet_func
{
public IntPtr Pointer;
public static implicit operator avio_alloc_context_write_packet_func(avio_alloc_context_write_packet func) => new avio_alloc_context_write_packet_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate int AVIOContext_read_packet(void* @opaque, byte* @buf, int @buf_size);
public unsafe struct AVIOContext_read_packet_func
{
public IntPtr Pointer;
public static implicit operator AVIOContext_read_packet_func(AVIOContext_read_packet func) => new AVIOContext_read_packet_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate int AVIOContext_read_pause(void* @opaque, int @pause);
public unsafe struct AVIOContext_read_pause_func
{
public IntPtr Pointer;
public static implicit operator AVIOContext_read_pause_func(AVIOContext_read_pause func) => new AVIOContext_read_pause_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate long AVIOContext_read_seek(void* @opaque, int @stream_index, long @timestamp, int @flags);
public unsafe struct AVIOContext_read_seek_func
{
public IntPtr Pointer;
public static implicit operator AVIOContext_read_seek_func(AVIOContext_read_seek func) => new AVIOContext_read_seek_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate long AVIOContext_seek(void* @opaque, long @offset, int @whence);
public unsafe struct AVIOContext_seek_func
{
public IntPtr Pointer;
public static implicit operator AVIOContext_seek_func(AVIOContext_seek func) => new AVIOContext_seek_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate ulong AVIOContext_update_checksum(ulong @checksum, byte* @buf, uint @size);
public unsafe struct AVIOContext_update_checksum_func
{
public IntPtr Pointer;
public static implicit operator AVIOContext_update_checksum_func(AVIOContext_update_checksum func) => new AVIOContext_update_checksum_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate int AVIOContext_write_data_type(void* @opaque, byte* @buf, int @buf_size, AVIODataMarkerType @type, long @time);
public unsafe struct AVIOContext_write_data_type_func
{
public IntPtr Pointer;
public static implicit operator AVIOContext_write_data_type_func(AVIOContext_write_data_type func) => new AVIOContext_write_data_type_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate int AVIOContext_write_packet(void* @opaque, byte* @buf, int @buf_size);
public unsafe struct AVIOContext_write_packet_func
{
public IntPtr Pointer;
public static implicit operator AVIOContext_write_packet_func(AVIOContext_write_packet func) => new AVIOContext_write_packet_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate int AVIOInterruptCB_callback(void* @p0);
public unsafe struct AVIOInterruptCB_callback_func
{
public IntPtr Pointer;
public static implicit operator AVIOInterruptCB_callback_func(AVIOInterruptCB_callback func) => new AVIOInterruptCB_callback_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate int func(AVFilterContext* @ctx, void* @arg, int @jobnr, int @nb_jobs);
public unsafe struct func_func
{
public IntPtr Pointer;
public static implicit operator func_func(func func) => new func_func { Pointer = func == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(func) };
}
}

View File

@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 6494f6467575f8f4686755f1fb403a78
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: c64159813b5056848bf146c573693369
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,21 +0,0 @@
/*----------------------------------------------------------------
// Copyright (C) 2025 Beijing All rights reserved.
//
// Author: huachangmiao
// Create Date: 2025/04/11
// Module Describe:
//----------------------------------------------------------------*/
namespace LeviathanVideo.Abstractions
{
public interface IFixedArray
{
int Length { get; }
}
internal interface IFixedArray<T> : IFixedArray
{
T this[uint index] { get; set; }
T[] ToArray();
void UpdateFrom(T[] array);
}
}

View File

@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 831fd920f1934bd46a5a38037ddf74b5
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,14 +0,0 @@
{
"name": "Leviathan.Core",
"rootNamespace": "",
"references": [],
"includePlatforms": [],
"excludePlatforms": [],
"allowUnsafeCode": true,
"overrideReferences": false,
"precompiledReferences": [],
"autoReferenced": true,
"defineConstraints": [],
"versionDefines": [],
"noEngineReferences": false
}

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: f1d67e105160e074c99d37c9215900e1
AssemblyDefinitionImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,56 +0,0 @@
/*----------------------------------------------------------------
// Copyright (C) 2025 Beijing All rights reserved.
//
// Author: huachangmiao
// Create Date: 2025/04/11
// Module Describe:
//----------------------------------------------------------------*/
using System;
using Unity.Collections.LowLevel.Unsafe;
namespace LeviathanVideo.Abstractions
{
public static partial class leviathan
{
#if UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX || UNITY_IOS
public static readonly int EAGAIN = 35;
public static readonly int ENOMEM = 12;
public static readonly int EINVAL = 22;
#elif UNITY_WEBGL && !UNITY_EDITOR
public static readonly int EAGAIN = 6;
public static readonly int ENOMEM = 48;
public static readonly int EINVAL = 28;
#else
public static readonly int EAGAIN = 11;
public static readonly int ENOMEM = 12;
public static readonly int EINVAL = 22;
#endif
// public static readonly int EPIPE = 32;
public static ulong UINT64_C<T>(T a)
=> Convert.ToUInt64(a);
public static int AVERROR_Enum<T1>(T1 a) where T1 : struct, IConvertible => -UnsafeUtility.EnumToInt(a);
public static int AVERROR<T1>(T1 a)
=> -Convert.ToInt32(a);
public static int MKTAG<T1, T2, T3, T4>(T1 a, T2 b, T3 c, T4 d)
=> (int)(Convert.ToUInt32(a) | (Convert.ToUInt32(b) << 8) | (Convert.ToUInt32(c) << 16) |
(Convert.ToUInt32(d) << 24));
public static int FFERRTAG<T1, T2, T3, T4>(T1 a, T2 b, T3 c, T4 d)
=> -MKTAG(a, b, c, d);
public static int AV_VERSION_INT<T1, T2, T3>(T1 a, T2 b, T3 c) =>
(Convert.ToInt32(a) << 16) | (Convert.ToInt32(b) << 8) | Convert.ToInt32(c);
public static string AV_VERSION_DOT<T1, T2, T3>(T1 a, T2 b, T3 c)
=> $"{a}.{b}.{c}";
public static string AV_VERSION<T1, T2, T3>(T1 a, T2 b, T3 c)
=> AV_VERSION_DOT(a, b, c);
}
}

View File

@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: ebc87a006120f7d4e8ac1faf1284562e
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: ac98c4f0ef273194db7db58423be559f
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 25e968c51067fb54a85f6052c03f6bcc
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,91 +0,0 @@
/*----------------------------------------------------------------
// Copyright (C) 2025 Beijing All rights reserved.
//
// Author: huachangmiao
// Create Date: 2025/04/11
// Module Describe:
//----------------------------------------------------------------*/
using System;
using System.Runtime.InteropServices;
using System.Text;
namespace LeviathanVideo.Abstractions
{
public class UTF8Marshaler : ICustomMarshaler
{
private static readonly UTF8Marshaler Instance = new UTF8Marshaler();
public virtual object MarshalNativeToManaged(IntPtr pNativeData) => FromNative(Encoding.UTF8, pNativeData);
public virtual IntPtr MarshalManagedToNative(object managedObj)
{
if (managedObj == null)
return IntPtr.Zero;
if (!(managedObj is string str))
throw new MarshalDirectiveException($"{GetType().Name} must be used on a string.");
return FromManaged(Encoding.UTF8, str);
}
public virtual void CleanUpNativeData(IntPtr pNativeData)
{
//Free anything allocated by MarshalManagedToNative
//This is called after the native function call completes
if (pNativeData != IntPtr.Zero)
Marshal.FreeHGlobal(pNativeData);
}
public void CleanUpManagedData(object managedObj)
{
//Free anything allocated by MarshalNativeToManaged
//This is called after the native function call completes
}
public int GetNativeDataSize() => -1; // Not a value type
public static ICustomMarshaler GetInstance(string cookie) => Instance;
public static unsafe string FromNative(Encoding encoding, IntPtr pNativeData) => FromNative(encoding, (byte*)pNativeData);
public static unsafe string FromNative(Encoding encoding, byte* pNativeData)
{
if (pNativeData == null)
return null;
var start = pNativeData;
var walk = start;
// Find the end of the string
while (*walk != 0) walk++;
if (walk == start)
return string.Empty;
return new string((sbyte*)pNativeData, 0, (int)(walk - start), encoding);
}
public static unsafe IntPtr FromManaged(Encoding encoding, string value)
{
if (encoding == null || value == null)
return IntPtr.Zero;
var length = encoding.GetByteCount(value);
var buffer = (byte*)Marshal.AllocHGlobal(length + 1).ToPointer();
if (length > 0)
{
fixed (char* pValue = value)
{
encoding.GetBytes(pValue, value.Length, buffer, length);
}
}
buffer[length] = 0;
return new IntPtr(buffer);
}
}
}

View File

@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 3d3fb0a766a91b74782afd15644bd45b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: f5804ddd88f687945bf3886c41d4a565
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,402 +0,0 @@
/*----------------------------------------------------------------
// Copyright (C) 2025 Beijing All rights reserved.
//
// Author: huachangmiao
// Create Date: 2025/04/11
// Module Describe:
//----------------------------------------------------------------*/
using System;
namespace LeviathanVideo.Abstractions
{
public static unsafe partial class leviathan
{
/// <summary>Clip a signed 64-bit integer value into the -2147483648,2147483647 range.</summary>
/// <param name="a">value to clip</param>
/// <returns>clipped value</returns>
public static int av_clipl_int32_c(long @a)
{
if ((((ulong)a + (2147483648UL)) & ~(4294967295UL)) != 0)
return (int)((a >> 63) ^ 2147483647);
else
return (int)a;
}
// original body hash: hVbFRW9NmALaR5Wqm8W2hfXu9xV8Kg7CEndQKK0wY4I=
/// <summary>Convert an AVRational to a `double`.</summary>
/// <param name="a">AVRational to convert</param>
/// <returns>`a` in floating-point form</returns>
public static double av_q2d(AVRational @a)
{
return a.num / (double)a.den;
}
// original body hash: j4R2BS8nF6czcUDVk5kKi9nLEdlTI/NRDYtnc1KFeyE=
#region unuse code
/*
/// <summary>Compute ceil(log2(x)).</summary>
/// <param name="x">value used to compute ceil(log2(x))</param>
/// <returns>computed ceiling of log2(x)</returns>
public static int av_ceil_log2_c(int @x)
{
return av_log2((uint)(x - 1U) << 1);
}
// original body hash: Y9QGw919/NB5ltczSPmZu5WZt+BfR1GGQ58ULgOxiNo=
/// <summary>Clip a signed integer value into the amin-amax range.</summary>
/// <param name="a">value to clip</param>
/// <param name="amin">minimum value of the clip range</param>
/// <param name="amax">maximum value of the clip range</param>
/// <returns>clipped value</returns>
public static int av_clip_c(int @a, int @amin, int @amax)
{
if (a < amin)
return amin;
else if (a > amax)
return amax;
else
return a;
}
// original body hash: FGSX8EvLhMgYqP9+0z1+Clej4HxjpENDPDX7uAYLx6k=
/// <summary>Clip a signed integer value into the -32768,32767 range.</summary>
/// <param name="a">value to clip</param>
/// <returns>clipped value</returns>
public static short av_clip_int16_c(int @a)
{
if (((a + 32768U) & ~65535) != 0)
return (short)((a >> 31) ^ 32767);
else
return (short)a;
}
// original body hash: l7ot2X+8YIG7Ze9ecaMTap87pGl9Q5kffGq1e9dS9Es=
/// <summary>Clip a signed integer value into the -128,127 range.</summary>
/// <param name="a">value to clip</param>
/// <returns>clipped value</returns>
public static sbyte av_clip_int8_c(int @a)
{
if (((a + 128U) & ~255) != 0)
return (sbyte)((a >> 31) ^ 127);
else
return (sbyte)a;
}
// original body hash: 959D6ojD8+Bo9o7pGvHcWTnCDg5Ax0o328RGYDIiUvo=
/// <summary>Clip a signed integer into the -(2^p),(2^p-1) range.</summary>
/// <param name="a">value to clip</param>
/// <param name="p">bit position to clip at</param>
/// <returns>clipped value</returns>
public static int av_clip_intp2_c(int @a, int @p)
{
if ((((uint)a + (1U << p)) & ~((2U << p) - 1)) != 0)
return (a >> 31) ^ ((1 << p) - 1);
else
return a;
}
// original body hash: H4R9TdJsLPxie0kMNORwLhiEFWSn5cG8vNmgEcRcwaE=
/// <summary>Clip a signed integer value into the 0-65535 range.</summary>
/// <param name="a">value to clip</param>
/// <returns>clipped value</returns>
public static ushort av_clip_uint16_c(int @a)
{
if ((a & (~65535)) != 0)
return (ushort)((~a) >> 31);
else
return (ushort)a;
}
// original body hash: nI5Vkw30nAjS2NmNSdCSnHeAUcY47XT0lnrnsUK/bJ4=
/// <summary>Clip a signed integer value into the 0-255 range.</summary>
/// <param name="a">value to clip</param>
/// <returns>clipped value</returns>
public static byte av_clip_uint8_c(int @a)
{
if ((a & (~255)) != 0)
return (byte)((~a) >> 31);
else
return (byte)a;
}
// original body hash: 32OGGgXBFRL7EcU8DizK9KbIFfU356+5hgUEyAOjIUY=
/// <summary>Clip a signed integer to an unsigned power of two range.</summary>
/// <param name="a">value to clip</param>
/// <param name="p">bit position to clip at</param>
/// <returns>clipped value</returns>
public static uint av_clip_uintp2_c(int @a, int @p)
{
if ((a & ~((1U << p) - 1)) != 0)
return (uint)(~a) >> 31 & ((1U << p) - 1);
else
return (uint)a;
}
// original body hash: e+b5mkBcLXfL9tlPoRVY9A8fy1jLPsqovjAobPBirRs=
/// <summary>Clip a signed 64bit integer value into the amin-amax range.</summary>
/// <param name="a">value to clip</param>
/// <param name="amin">minimum value of the clip range</param>
/// <param name="amax">maximum value of the clip range</param>
/// <returns>clipped value</returns>
public static long av_clip64_c(long @a, long @amin, long @amax)
{
if (a < amin)
return amin;
else if (a > amax)
return amax;
else
return a;
}
// original body hash: FGSX8EvLhMgYqP9+0z1+Clej4HxjpENDPDX7uAYLx6k=
/// <summary>Clip a double value into the amin-amax range. If a is nan or -inf amin will be returned. If a is +inf amax will be returned.</summary>
/// <param name="a">value to clip</param>
/// <param name="amin">minimum value of the clip range</param>
/// <param name="amax">maximum value of the clip range</param>
/// <returns>clipped value</returns>
public static double av_clipd_c(double @a, double @amin, double @amax)
{
return ((((a) > (amin) ? (a) : (amin))) > (amax) ? (amax) : (((a) > (amin) ? (a) : (amin))));
}
// original body hash: 3g76qefPWCYqXraY2vYdxoH58/EKn5EeR9v7cGEBM6Y=
/// <summary>Clip a float value into the amin-amax range. If a is nan or -inf amin will be returned. If a is +inf amax will be returned.</summary>
/// <param name="a">value to clip</param>
/// <param name="amin">minimum value of the clip range</param>
/// <param name="amax">maximum value of the clip range</param>
/// <returns>clipped value</returns>
public static float av_clipf_c(float @a, float @amin, float @amax)
{
return ((((a) > (amin) ? (a) : (amin))) > (amax) ? (amax) : (((a) > (amin) ? (a) : (amin))));
}
// original body hash: 3g76qefPWCYqXraY2vYdxoH58/EKn5EeR9v7cGEBM6Y=
/// <summary>Compare two rationals.</summary>
/// <param name="a">First rational</param>
/// <param name="b">Second rational</param>
/// <returns>One of the following values: - 0 if `a == b` - 1 if `a &gt; b` - -1 if `a &lt; b` - `INT_MIN` if one of the values is of the form `0 / 0`</returns>
public static int av_cmp_q(AVRational @a, AVRational @b)
{
long tmp = a.num * (long)b.den - b.num * (long)a.den;
if (tmp != 0)
return (int)((tmp ^ a.den ^ b.den) >> 63) | 1;
else if (b.den != 0 && a.den != 0)
return 0;
else if (a.num != 0 && b.num != 0)
return (a.num >> 31) - (b.num >> 31);
else
return (-2147483647 - 1);
}
// original body hash: M+RGb5gXGdDjfY/gK5ZeCYeYrZAxjTXZA9+XVu0I66Q=
/// <summary>Reinterpret a double as a 64-bit integer.</summary>
public static ulong av_double2int(double @f)
{
return (ulong)@f;
}
// original body hash: 2HuHK8WLchm3u+cK6H4QWhflx2JqfewtaSpj2Cwfi8M=
/// <summary>Reinterpret a float as a 32-bit integer.</summary>
public static uint av_float2int(float @f)
{
return (uint)@f;
}
// original body hash: uBvsHd8EeFnxDvSdDE1+k5Um29kCuf0aEJhAvDy0wZk=
/// <summary>Wrapper around av_frame_side_data_get_c() to workaround the limitation that for any type T the conversion from T * const * to const T * const * is not performed automatically in C.</summary>
public static AVFrameSideData* av_frame_side_data_get(AVFrameSideData** @sd, int @nb_sd, AVFrameSideDataType @type)
{
return av_frame_side_data_get_c(sd, nb_sd, type);
}
// original body hash: nxiyu/BnkvF9Z/fWwpii6qfquOeLA/wdeiuxyQQxS4E=
/// <summary>Wrapper around av_image_copy() to workaround the limitation that the conversion from uint8_t * const * to const uint8_t * const * is not performed automatically in C.</summary>
public static void av_image_copy2(ref byte_ptr4 @dst_data, in int4 @dst_linesizes, ref byte_ptr4 @src_data, in int4 @src_linesizes, AVPixelFormat @pix_fmt, int @width, int @height)
{
av_image_copy(ref dst_data, dst_linesizes, src_data, src_linesizes, pix_fmt, width, height);
}
// original body hash: RdaM2zKuF7t0cNJItdh1SZPg9WiOfPpTwty5cHDiZ2A=
/// <summary>Reinterpret a 64-bit integer as a double.</summary>
public static double av_int2double(ulong @i)
{
return (double)@i;
}
// original body hash: iFt3hVHTpF9jjqIGAAf/c7FrGfenOXGxdsyMjmrbwvw=
/// <summary>Reinterpret a 32-bit integer as a float.</summary>
public static float av_int2float(uint @i)
{
return (float)@i;
}
// original body hash: wLGFPpW+aIvxW79y6BVY1LKz/j7yc3BdiaJ7mD4oQmw=
/// <summary>Invert a rational.</summary>
/// <param name="q">value</param>
/// <returns>1 / q</returns>
public static AVRational av_inv_q(AVRational @q)
{
var r = new AVRational { @num = q.den, @den = q.num };
return r;
}
// original body hash: sXbO4D7vmayAx56EFqz9C0kakcSPSryJHdk0hr0MOFY=
/// <summary>Fill the provided buffer with a string containing an error string corresponding to the AVERROR code errnum.</summary>
/// <param name="errbuf">a buffer</param>
/// <param name="errbuf_size">size in bytes of errbuf</param>
/// <param name="errnum">error code to describe</param>
/// <returns>the buffer in input, filled with the error description</returns>
public static byte* av_make_error_string(byte* @errbuf, ulong @errbuf_size, int @errnum)
{
av_strerror(errnum, errbuf, errbuf_size);
return errbuf;
}
// original body hash: DRHQHyLQNo9pTxA+wRw4zVDrC7Md1u3JWawQX0BVkqE=
/// <summary>Create an AVRational.</summary>
public static AVRational av_make_q(int @num, int @den)
{
var r = new AVRational { @num = num, @den = den };
return r;
}
// original body hash: IAPYNNcg3GX0PGxINeLQhb41dH921lPVKcnqxCk7ERA=
[Obsolete()]
public static uint av_mod_uintp2_c(uint @a, uint @p)
{
return av_zero_extend_c(a, p);
}
// original body hash: MfDd5KRKGNiwvccdrrbME05wNKCRzGTF1T24OggAyp0=
public static int av_parity_c(uint @v)
{
return av_popcount_c(v) & 1;
}
// original body hash: Hsrq5CWkNvuNTnqES92ZJYVYpKXFwosrZNja/oaUd0s=
/// <summary>Count number of bits set to one in x</summary>
/// <param name="x">value to count bits of</param>
/// <returns>the number of bits set to one in x</returns>
public static int av_popcount_c(uint @x)
{
x -= (x >> 1) & 1431655765;
x = (x & 858993459) + ((x >> 2) & 858993459);
x = (x + (x >> 4)) & 252645135;
x += x >> 8;
return (int)((x + (x >> 16)) & 63);
}
// original body hash: 6EqV8Ll7t/MGINV9Nh3TSEbNyUYeskm7HucpU0SAkgg=
/// <summary>Count number of bits set to one in x</summary>
/// <param name="x">value to count bits of</param>
/// <returns>the number of bits set to one in x</returns>
public static int av_popcount64_c(ulong @x)
{
return av_popcount_c((uint)x) + av_popcount_c((uint)(x >> 32));
}
// original body hash: 4wjPAKU9R0yS6OI8Y9h3L6de+uXt/lBm+zX7t5Ch18k=
/// <summary>Add two signed 32-bit values with saturation.</summary>
/// <param name="a">one value</param>
/// <param name="b">another value</param>
/// <returns>sum with signed saturation</returns>
public static int av_sat_add32_c(int @a, int @b)
{
return av_clipl_int32_c((long)a + b);
}
// original body hash: GAAy4GsS2n+9kJ/8hzuONPUOGIsiOj7PvXnLHUVrimY=
/// <summary>Add two signed 64-bit values with saturation.</summary>
/// <param name="a">one value</param>
/// <param name="b">another value</param>
/// <returns>sum with signed saturation</returns>
public static long av_sat_add64_c(long @a, long @b)
{
try
{
return @a + @b;
}
catch (OverflowException)
{
return ((double)@a + (double)@b) > 0d ? long.MaxValue : long.MinValue;
}
}
// original body hash: qeup76rp1rjakhMYQJWWEYIkpgscUcDfzDIrjyqk5iM=
/// <summary>Add a doubled value to another value with saturation at both stages.</summary>
/// <param name="a">first value</param>
/// <param name="b">value doubled and added to a</param>
/// <returns>sum sat(a + sat(2*b)) with signed saturation</returns>
public static int av_sat_dadd32_c(int @a, int @b)
{
return av_sat_add32_c(a, av_sat_add32_c(b, b));
}
// original body hash: Kbha6XFULk7dxB6zc5WRwoPczQVN7HBcNs9Hjlj/Caw=
/// <summary>Subtract a doubled value from another value with saturation at both stages.</summary>
/// <param name="a">first value</param>
/// <param name="b">value doubled and subtracted from a</param>
/// <returns>difference sat(a - sat(2*b)) with signed saturation</returns>
public static int av_sat_dsub32_c(int @a, int @b)
{
return av_sat_sub32_c(a, av_sat_add32_c(b, b));
}
// original body hash: ypu4i+30n3CeMxdL8pq7XDYAFBi1N5d2mkIT6zQ1bO0=
/// <summary>Subtract two signed 32-bit values with saturation.</summary>
/// <param name="a">one value</param>
/// <param name="b">another value</param>
/// <returns>difference with signed saturation</returns>
public static int av_sat_sub32_c(int @a, int @b)
{
return av_clipl_int32_c((long)a - b);
}
// original body hash: /tgXI2zbIgliqOwZbpnq7jSiVj0N70RjBFsbkIkWhsM=
/// <summary>Subtract two signed 64-bit values with saturation.</summary>
/// <param name="a">one value</param>
/// <param name="b">another value</param>
/// <returns>difference with signed saturation</returns>
public static long av_sat_sub64_c(long @a, long @b)
{
try
{
return @a - @b;
}
catch (OverflowException)
{
return ((double)@a - (double)@b) > 0d ? long.MaxValue : long.MinValue;
}
}
// original body hash: 6YrSxDrYVG1ac1wlCiXKMhTwj7Kx6eym/YtspKusrGk=
/// <summary>Return x default pointer in case p is NULL.</summary>
public static void* av_x_if_null(void* @p, void* @x)
{
return (void*)(p != null ? p : x);
}
// original body hash: zOY924eIk3VeTSNb9XcE2Yw8aZ4/jlzQSfP06k5n0nU=
/// <summary>Clear high bits from an unsigned integer starting with specific bit position</summary>
/// <param name="a">value to clip</param>
/// <param name="p">bit position to clip at. Must be between 0 and 31.</param>
/// <returns>clipped value</returns>
public static uint av_zero_extend_c(uint @a, uint @p)
{
return a & ((1U << (int)p) - 1);
}
// original body hash: ncn4Okxr9Nas1g/qCfpRHKtywuNmJuf3UED+o3wjadc=
/// <summary>ftell() equivalent for AVIOContext.</summary>
/// <returns>position or AVERROR.</returns>
public static long avio_tell(AVIOContext* @s)
{
return avio_seek(s, 0, 1);
}
// original body hash: o18c3ypeh9EsmYaplTel2ssgM2PZKTTDfMjsqEopycw=
*/
#endregion
}
}

View File

@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: c6aafe78d5c8f034e91415b317e7a463
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 1156a8d8f5e1b0c4ab423518683a73c4
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 8a9ba0e5ea12d414b922e04da0d8f224
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: f0472c50f0c01884c8341ae655a7a45f
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,71 +0,0 @@
fileFormatVersion: 2
guid: d349bdd529bf1384581da0acce9d9cf3
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 Linux64: 1
Exclude OSXUniversal: 1
Exclude Win: 1
Exclude Win64: 1
- first:
Android: Android
second:
enabled: 1
settings:
AndroidSharedLibraryType: Executable
CPU: ARM64
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: None
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,71 +0,0 @@
fileFormatVersion: 2
guid: da40082fb7afc814a880157ff135c348
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 Linux64: 1
Exclude OSXUniversal: 1
Exclude Win: 1
Exclude Win64: 1
- first:
Android: Android
second:
enabled: 1
settings:
AndroidSharedLibraryType: Executable
CPU: ARM64
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: None
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,71 +0,0 @@
fileFormatVersion: 2
guid: 5a590fa83370f1b43aded6dd0418dfb8
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 Linux64: 1
Exclude OSXUniversal: 1
Exclude Win: 1
Exclude Win64: 1
- first:
Android: Android
second:
enabled: 1
settings:
AndroidSharedLibraryType: Executable
CPU: ARM64
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: None
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 5f2c55beab072af43adbb43c9090cb33
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,67 +0,0 @@
fileFormatVersion: 2
guid: c5e0a9f6ab078aa4b8d1cd2e0ed2e318
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 Linux64: 1
Exclude OSXUniversal: 1
Exclude Win: 1
Exclude Win64: 1
- first:
Android: Android
second:
enabled: 1
settings: {}
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: None
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,67 +0,0 @@
fileFormatVersion: 2
guid: 49e15e07e8602b941b3d18e5abffaa29
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 Linux64: 1
Exclude OSXUniversal: 1
Exclude Win: 1
Exclude Win64: 1
- first:
Android: Android
second:
enabled: 1
settings: {}
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: None
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,67 +0,0 @@
fileFormatVersion: 2
guid: 46b4457b8ae0fe541bec45c4933cd4a9
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 Linux64: 1
Exclude OSXUniversal: 1
Exclude Win: 1
Exclude Win64: 1
- first:
Android: Android
second:
enabled: 1
settings: {}
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: None
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 4f0cc0aea8eaabd4fa01decdabdb378d
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,71 +0,0 @@
fileFormatVersion: 2
guid: 6b623314619024a4f8397da099579e7b
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 Linux64: 1
Exclude OSXUniversal: 1
Exclude Win: 1
Exclude Win64: 1
- first:
Android: Android
second:
enabled: 1
settings:
AndroidSharedLibraryType: Executable
CPU: X86
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: None
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,71 +0,0 @@
fileFormatVersion: 2
guid: b12057dc023f6204791722a99fe1e136
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 Linux64: 1
Exclude OSXUniversal: 1
Exclude Win: 1
Exclude Win64: 1
- first:
Android: Android
second:
enabled: 1
settings:
AndroidSharedLibraryType: Executable
CPU: X86
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: None
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,71 +0,0 @@
fileFormatVersion: 2
guid: 5c4eb621215eaac4493ccaf301c98092
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 Linux64: 1
Exclude OSXUniversal: 1
Exclude Win: 1
Exclude Win64: 1
- first:
Android: Android
second:
enabled: 1
settings:
AndroidSharedLibraryType: Executable
CPU: X86
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: None
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 01fc22b120dc2154489b6763f8b67a14
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,71 +0,0 @@
fileFormatVersion: 2
guid: b2cd264a94ddf5543bbc08419f909738
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 Linux64: 1
Exclude OSXUniversal: 1
Exclude Win: 1
Exclude Win64: 1
- first:
Android: Android
second:
enabled: 1
settings:
AndroidSharedLibraryType: Executable
CPU: X86_64
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: None
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,71 +0,0 @@
fileFormatVersion: 2
guid: 7a6ace9d32e3e1c4da47afe4e70e6a51
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 Linux64: 1
Exclude OSXUniversal: 1
Exclude Win: 1
Exclude Win64: 1
- first:
Android: Android
second:
enabled: 1
settings:
AndroidSharedLibraryType: Executable
CPU: X86_64
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: None
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,71 +0,0 @@
fileFormatVersion: 2
guid: 2dde4bb3706cbae4cb9d27bb84c0bc2a
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 Linux64: 1
Exclude OSXUniversal: 1
Exclude Win: 1
Exclude Win64: 1
- first:
Android: Android
second:
enabled: 1
settings:
AndroidSharedLibraryType: Executable
CPU: X86_64
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: None
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 7abe18c33e45106409484ecf638961e7
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,81 +0,0 @@
fileFormatVersion: 2
guid: 1321dae2bbb2203448be993b522bc5ca
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
: Any
second:
enabled: 0
settings:
Exclude Android: 1
Exclude Editor: 1
Exclude Linux64: 1
Exclude OSXUniversal: 1
Exclude Win: 1
Exclude Win64: 1
Exclude iOS: 0
- first:
Android: Android
second:
enabled: 0
settings:
AndroidSharedLibraryType: Executable
CPU: ARMv7
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: None
- first:
iPhone: iOS
second:
enabled: 1
settings:
AddToEmbeddedBinaries: false
CPU: ARM64
CompileFlags:
FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,81 +0,0 @@
fileFormatVersion: 2
guid: 2a8f0aa76f9a4ac4982a0b5bb54fb699
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
: Any
second:
enabled: 0
settings:
Exclude Android: 1
Exclude Editor: 1
Exclude Linux64: 1
Exclude OSXUniversal: 1
Exclude Win: 1
Exclude Win64: 1
Exclude iOS: 0
- first:
Android: Android
second:
enabled: 0
settings:
AndroidSharedLibraryType: Executable
CPU: ARMv7
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: None
- first:
iPhone: iOS
second:
enabled: 1
settings:
AddToEmbeddedBinaries: false
CPU: ARM64
CompileFlags:
FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,81 +0,0 @@
fileFormatVersion: 2
guid: e1a867319cb2d1e45af6dd4d7af86f52
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
: Any
second:
enabled: 0
settings:
Exclude Android: 1
Exclude Editor: 1
Exclude Linux64: 1
Exclude OSXUniversal: 1
Exclude Win: 1
Exclude Win64: 1
Exclude iOS: 0
- first:
Android: Android
second:
enabled: 0
settings:
AndroidSharedLibraryType: Executable
CPU: ARMv7
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: None
- first:
iPhone: iOS
second:
enabled: 1
settings:
AddToEmbeddedBinaries: false
CPU: ARM64
CompileFlags:
FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 93270d16fc4e3a543b873d501f4b8298
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,82 +0,0 @@
fileFormatVersion: 2
guid: 94013bd364da14843a3c0450deba42de
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 1
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
: Any
second:
enabled: 0
settings:
Exclude Android: 1
Exclude Editor: 0
Exclude Linux64: 0
Exclude OSXUniversal: 0
Exclude WebGL: 1
Exclude Win: 1
Exclude Win64: 0
Exclude iOS: 1
- first:
Android: Android
second:
enabled: 0
settings:
AndroidSharedLibraryType: Executable
CPU: ARMv7
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 1
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: Windows
- first:
Standalone: Linux64
second:
enabled: 1
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 1
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: AnyCPU
- first:
Standalone: Win64
second:
enabled: 1
settings:
CPU: AnyCPU
- first:
iPhone: iOS
second:
enabled: 0
settings:
AddToEmbeddedBinaries: false
CPU: AnyCPU
CompileFlags:
FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,82 +0,0 @@
fileFormatVersion: 2
guid: 9aa4aaf564c6f004fbd39c77d01b26df
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 1
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
: Any
second:
enabled: 0
settings:
Exclude Android: 1
Exclude Editor: 0
Exclude Linux64: 0
Exclude OSXUniversal: 0
Exclude WebGL: 1
Exclude Win: 0
Exclude Win64: 0
Exclude iOS: 1
- first:
Android: Android
second:
enabled: 0
settings:
AndroidSharedLibraryType: Executable
CPU: ARMv7
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 1
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: Windows
- first:
Standalone: Linux64
second:
enabled: 1
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 1
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 1
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 1
settings:
CPU: AnyCPU
- first:
iPhone: iOS
second:
enabled: 0
settings:
AddToEmbeddedBinaries: false
CPU: AnyCPU
CompileFlags:
FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:

Some files were not shown because too many files have changed in this diff Show More