Unity SDK
Die Unity SDK word as 'n weergawe-beheerde Git UPM-pakket (0.6.0) gelewer vir tooneel-bewuste attribusie en diep-skakel-hantering, en omvou dieselfde gedeelde Attriax-kern as elke ander SDK.
Pakketoppervlak
Algemene gids vir Attriax Unity package. Gebruik die projekwerkspasie wanneer u gedetailleerde opstelstappe, vrystelling-konteks en projekspesifieke waardes benodig.
Waarvoor spanne dit gebruik
Dit is die looptyd-take wat die produk reeds deur die SDK en die ooreenstemmende werkspasie-gereedskap beskikbaar stel.
Tooneel-bewuste looptyd
Hou attribusie, app-oop-opsporing en toneelkonteks saam in die enjin-lewensiklus.
Validator-ondersteunde opstelling
Gebruik die redigeerder-validator en opstel-diagnostiek sodra die pakket in 'n regte projek ingevoer is.
Weergawe-beheerde Git UPM-vrystelling
Installeer vanaf 'n vasgespelde Git-etiket soos #v0.6.0; paar dit met die projekwerkruimte vir huidige vrystellingsbesonderhede.
Integrasienotas
Hou die openbare dokumentasie liggies, en open dan die projekwerkspasie wanneer u die presiese opstelstappe vir u eie vrystellingsvloei benodig.
Vermoens
- Initialiseer vanaf gekonfigureerde instellings of bootstrap 'n gasheer dinamies wanneer u 'n kode-eerste opstelpad benodig.
- Teken in op diep-skakel-gebeurtenisse en los bestemmings op nadat die looptyd app-oop-verwerking voltooi het.
- Aktiveer GDPR-bewuste aflewering met GdprEnabled en gebruik Attriax.Consent.Gdpr van privaatheid- of instellings-vloei.
- Spoor tooneel- of speletjie-konteks as looptyd-gebeurtenisse sodat attribusie verbind bly met binne-spel-gedrag.
- Voer redigeerder-kant validasie na invoer uit om token- en gasheer-resolusie tydens opstelling te bevestig.
Notas
- Unity word vanaf 'n weergawe-beheerde Git UPM-pakket gelewer en bly gedrag-belyn met die gedeelde Attriax-kern wat Flutter, web en die natuurlike SDK's gebruik.
- Unity Editor en werkskerm-spelers registreer nie deïnstallasie-tokens direk nie, so tokenbrue moet agter mobiele looptyd-kontroles bly.
- Skep 'n projek om toegang te kry tot die huidige pakket-vrystellingsbesonderhede, notas en validator-werkvloei van die aangetekende opstel-oppervlak.
Installeer
Kies in Unity Package Manager "Add package from git URL" en plak die URL hieronder. Die ?path=-agtervoegsel wys na die ingebedde UPM-pakket onder Packages/com.attriax.unity.
Installeer-opdrag
https://github.com/attriax/sdk-unity.git?path=Packages/com.attriax.unityVoorbeeld
Die onderstaande kode-uittreksel weerspieel die beginpunt van die projekwerkspasie terwyl die gids algemeen bly in plaas van projekspesifiek.
Assets/Scripts/AttriaxBootstrap.cs
Initialiseer die looptyd, teken in op diep skakels, spoor toneelkonteks en gee opgeboste bestemmings terug na u spel-vloei.
1#nullable enable
2using System;
3using System.Collections.Generic;
4using System.Threading.Tasks;
5using Attriax.Unity;
6using UnityEngine;
7using UnityEngine.SceneManagement;
8
9public sealed class AttriaxBootstrap : MonoBehaviour
10{
11 private Attriax? _attriax;
12 private IDisposable? _deepLinkSubscription;
13
14 private async void Start()
15 {
16 if (Attriax.HasConfiguredSettings)
17 {
18 _attriax = await Attriax.InitializeConfiguredAsync();
19 }
20 else
21 {
22 var host = await AttriaxBehaviour.CreateAndInitializeHostAsync(
23 new AttriaxConfig
24 {
25 ProjectToken = "ax_your_project_token",
26 GdprEnabled = true,
27 EnableDebugLogs = Debug.isDebugBuild,
28 AutomaticSceneTracking = true,
29 SdkMetadata = new Dictionary<string, object>
30 {
31 ["environment"] = Application.platform.ToString(),
32 },
33 },
34 new AttriaxInitOptions
35 {
36 CaptureInitialUrl = true,
37 },
38 persistAcrossScenes: true);
39
40 _attriax = host.Instance ?? throw new InvalidOperationException(
41 "Attriax host did not create an SDK instance.");
42 }
43
44 if (_attriax == null)
45 {
46 return;
47 }
48
49 _deepLinkSubscription = _attriax.DeepLinks.Stream.Subscribe(HandleDeepLinkEvent);
50
51 var initialDeepLink = await _attriax.DeepLinks.WaitForInitialDeepLink;
52 var originalInstallReferrer = await _attriax.Referrer.GetOriginalInstallReferrerAsync();
53 var reinstallReferrer = await _attriax.Referrer.GetReinstallReferrerAsync();
54 var appOpen = await _attriax.WaitForAppOpenTrackingAsync();
55 if (appOpen != null)
56 {
57 Debug.Log(quot;[Attriax] Install state: {appOpen.InstallState}");
58 }
59
60 if (originalInstallReferrer != null)
61 {
62 Debug.Log(quot;[Attriax] Original install campaign: {originalInstallReferrer.Campaign}");
63 }
64
65 if (reinstallReferrer != null)
66 {
67 Debug.Log(quot;[Attriax] Reinstall campaign: {reinstallReferrer.Campaign}");
68 }
69
70 if (initialDeepLink?.Found == true)
71 {
72 OpenDeepLink(initialDeepLink.Uri.AbsolutePath);
73 }
74
75 await _attriax.TrackEventAsync("session_started", new AttriaxTrackEventOptions
76 {
77 EventData = new Dictionary<string, object>
78 {
79 ["scene"] = SceneManager.GetActiveScene().name,
80 },
81 });
82
83 // Forward mobile uninstall tokens from your native bridge after the SDK is ready.
84 // Example hooks:
85 // NativePushBridge.FirebaseTokenReceived += token => _ = RegisterFirebaseTokenAsync(token);
86 // NativePushBridge.ApplePushTokenReceived += token => _ = RegisterApplePushTokenAsync(token);
87 }
88
89 private void OnDestroy()
90 {
91 _deepLinkSubscription?.Dispose();
92 }
93
94 private void HandleDeepLinkEvent(AttriaxDeepLinkEvent deepLinkEvent)
95 {
96 if (!deepLinkEvent.Found)
97 {
98 return;
99 }
100
101 OpenDeepLink(deepLinkEvent.Uri.AbsolutePath);
102 }
103
104 public async Task RegisterFirebaseTokenAsync(string? token)
105 {
106 if (_attriax == null)
107 {
108 return;
109 }
110
111 await _attriax.RegisterFirebaseMessagingTokenAsync(
112 token,
113 new Dictionary<string, object>
114 {
115 ["provider"] = "fcm",
116 ["platform"] = Application.platform.ToString(),
117 });
118 }
119
120 public async Task RegisterApplePushTokenAsync(string? token)
121 {
122 if (_attriax == null)
123 {
124 return;
125 }
126
127 await _attriax.RegisterApplePushTokenAsync(
128 token,
129 new Dictionary<string, object>
130 {
131 ["provider"] = "apns",
132 ["platform"] = Application.platform.ToString(),
133 });
134 }
135
136 private void OpenDeepLink(string path)
137 {
138 Debug.Log(quot;[Attriax] Navigate to: {path}");
139 // Map the Attriax path to your scene, router, or gameplay flow.
140 }
141}