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.

Die Unity-pakket installeer vanaf Git deur Unity Package Manager, nie vanaf 'n openbare pakketregister nie. Speld 'n vrystelling vas deur 'n etiket soos #v0.6.0 aan die Git-URL te heg, of skep 'n projek om die huidige pakketvrystelling, notas en aflaai-vloei te sien.

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.unity

Voorbeeld

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}