Skip to content

Commit 2fd83d8

Browse files
authored
Release 0.5.0 (#9)
Develop @b1ba28291adfd72a5ed6bd792866515c54d52d51
1 parent 2932672 commit 2fd83d8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+372
-289
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
ucrp-20240501
1+
ucrp-20240629
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
using System;
22
using Unity.Cloud.Common;
33

4-
[assembly: ApiSourceVersion("Unity Cloud Reference Project", "0.4.2")]
4+
[assembly: ApiSourceVersion("Unity Cloud Reference Project", "0.5.0")]

ReferenceProject/Assets/_Application/Editor/AssetLoader.cs

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using System.Threading.Tasks;
77
using Unity.Cloud.Assets;
88
using Unity.Cloud.Identity;
9+
using Unity.ReferenceProject.AssetList;
910
using Unity.ReferenceProject.DataStreaming;
1011
using Unity.ReferenceProject.Identity;
1112
using UnityEditor;
@@ -26,6 +27,7 @@ public class AssetLoader : MonoBehaviour
2627

2728
IOrganizationRepository m_OrganizationRepository;
2829
IAssetRepository m_AssetRepository;
30+
IAssetListController m_AssetListController;
2931
IDataStreamController m_DataStreamController;
3032
ICloudSession m_Session;
3133

@@ -39,10 +41,11 @@ public string AssetName
3941

4042
[Inject]
4143
public void Setup(ICloudSession session, IDataStreamController dataStreamController,
42-
IOrganizationRepository organizationRepository, IAssetRepository assetRepository)
44+
IOrganizationRepository organizationRepository, IAssetRepository assetRepository, IAssetListController assetListController)
4345
{
4446
m_OrganizationRepository = organizationRepository;
4547
m_AssetRepository = assetRepository;
48+
m_AssetListController = assetListController;
4649
m_DataStreamController = dataStreamController;
4750
m_Session = session;
4851

@@ -54,17 +57,28 @@ public void Setup(ICloudSession session, IDataStreamController dataStreamControl
5457

5558
async Task OnLoggedIn()
5659
{
60+
if (m_AssetListController.SelectedOrganization != null)
61+
{
62+
return;
63+
}
64+
5765
StatusReceiver.SetStatus($"{ObjectNames.NicifyVariableName(m_Session.State.ToString())}");
5866
IAsset foundAsset = null;
5967
IAsset firstFoundAsset = null;
6068
var cancellationToken = new CancellationTokenSource().Token;
61-
var organizations = await m_OrganizationRepository.ListOrganizationsAsync();
69+
70+
var organizations = new List<IOrganization>();
71+
72+
await foreach (var organization in m_OrganizationRepository.ListOrganizationsAsync(Range.All, cancellationToken))
73+
{
74+
organizations.Add(organization);
75+
}
6276

6377
foreach (var organization in organizations)
6478
{
6579
var projects = m_AssetRepository.ListAssetProjectsAsync(
6680
organization.Id,
67-
new(nameof(IProject.Name), Range.All),
81+
Range.All,
6882
cancellationToken);
6983

7084
Tuple<IAsset, IAsset> assetsFound = await SearchProjects(projects, cancellationToken);
@@ -100,10 +114,8 @@ async Task<Tuple<IAsset,IAsset>> SearchProjects(IAsyncEnumerable<IAssetProject>
100114

101115
await foreach (var project in projects)
102116
{
103-
var assets = project.SearchAssetsAsync(
104-
new AssetSearchFilter(),
105-
new Pagination(nameof(IAsset.Name), Range.All),
106-
cancellationToken);
117+
var assetQueryBuilder = project.QueryAssets().LimitTo(Range.All);
118+
var assets = assetQueryBuilder.ExecuteAsync(cancellationToken);
107119

108120
if (!string.IsNullOrEmpty(m_AssetName))
109121
{

ReferenceProject/Assets/_Application/NavigationModes/CameraDefaultPositionController.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,20 +61,21 @@ void Awake()
6161
SetCameraPosition
6262
);
6363

64-
m_QueryArgumentsProcessor.Register(m_QueryArgumentCameraTransformHandler, DeepLinkResourceType.Dataset);
64+
m_QueryArgumentsProcessor.Register(m_QueryArgumentCameraTransformHandler, DeepLinkResourceType.Asset);
6565
}
6666

6767
void OnDestroy()
6868
{
6969
m_AssetEvents.AssetLoaded -= OnAssetLoaded;
7070
m_AssetEvents.AssetUnloaded -= OnAssetUnloaded;
71-
m_QueryArgumentsProcessor.Unregister(m_QueryArgumentCameraTransformHandler, DeepLinkResourceType.Dataset);
71+
m_QueryArgumentsProcessor.Unregister(m_QueryArgumentCameraTransformHandler, DeepLinkResourceType.Asset);
7272
}
7373

7474
static string Vector3UrlFormat(Vector3 v)
7575
{
7676
return $"{v.x},{v.y},{v.z}";
7777
}
78+
7879
public string GetCameraPosition()
7980
{
8081
var cameraTransform = m_CameraProvider.Camera.transform;

ReferenceProject/Assets/_Application/Scenes/Main.unity

Lines changed: 19 additions & 27 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ReferenceProject/Assets/_Application/Scripts/AppController/AssetListRoomMonitoringController.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ async void OnAssetHighlighted(IAsset obj)
4747

4848
if (room == null)
4949
{
50-
room = m_PresenceRoomsManager.CheckPermissions(PresencePermission.CreateRoom) ? await m_PresenceRoomsManager.CreateRoomAsync(obj.Descriptor.OrganizationGenesisId, assetId) : await m_PresenceRoomsManager.GetRoomAsync(obj.Descriptor.OrganizationGenesisId, assetId);
50+
room = m_PresenceRoomsManager.CheckPermissions(PresencePermission.CreateRoom) ? await m_PresenceRoomsManager.CreateRoomAsync(obj.Descriptor.OrganizationId, assetId) : await m_PresenceRoomsManager.GetRoomAsync(obj.Descriptor.OrganizationId, assetId);
5151

5252
if (room == null)
5353
return;

ReferenceProject/Assets/_Application/Scripts/AppStates/AssetListState.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@ void OnDestroy()
3434
m_AssetListController.AssetSelected -= OnAssetSelected;
3535
}
3636

37-
protected override void EnterStateInternal()
37+
protected override async void EnterStateInternal()
3838
{
39-
_ = m_AssetListController.Refresh();
39+
await m_AssetListController.Refresh();
4040
}
4141

4242
void OnAssetSelected(IAsset asset)

ReferenceProject/Assets/_Application/Scripts/AppStates/Initialization/WaitAuthenticationState.cs

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.Collections;
3+
using System.Threading.Tasks;
34
using Unity.ReferenceProject.DeepLinking;
45
using Unity.ReferenceProject.Identity;
56
using Unity.ReferenceProject.StateMachine;
@@ -36,23 +37,39 @@ protected override void EnterStateInternal()
3637
{
3738
if (!m_Session.Initialized)
3839
{
39-
_ = m_Session.Initialize();
40+
_ = InitializeSession();
4041
}
42+
4143
StartCoroutine(WaitForInitialization());
4244
}
4345

46+
async Task InitializeSession()
47+
{
48+
try
49+
{
50+
await m_Session.Initialize();
51+
}
52+
catch (Exception e)
53+
{
54+
Debug.LogException(e);
55+
throw;
56+
}
57+
}
58+
4459
IEnumerator WaitForInitialization()
4560
{
46-
float time = Time.realtimeSinceStartup;
47-
while (!m_Session.Initialized)
61+
var time = Time.realtimeSinceStartup;
62+
while (!m_Session.Initialized && m_Session.State is not SessionState.LoggedIn and not SessionState.LoggedOut)
4863
{
4964
yield return new WaitForEndOfFrame();
5065
}
51-
float elapsed = Time.realtimeSinceStartup - time;
66+
67+
var elapsed = Time.realtimeSinceStartup - time;
5268
if (elapsed < m_MinimumDuration)
5369
{
5470
yield return new WaitForSeconds(m_MinimumDuration - elapsed);
5571
}
72+
5673
CheckLoginState();
5774
}
5875

ReferenceProject/Assets/_Application/Scripts/DI/ServicesInstaller.cs

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,20 @@ public class ServicesInstaller : MonoInstaller
2323
{
2424
[SerializeField]
2525
ServicesInitializer m_ServicesInitializer;
26-
26+
2727
[SerializeField]
2828
LogLevel m_ServicesLogLevel = LogLevel.Warning;
29-
29+
3030
CompositeAuthenticator m_CompositeAuthenticator;
3131
ServiceMessagingClient m_JoinerClient;
3232
ServiceMessagingClient m_MonitoringClient;
33-
33+
3434
public override void InstallBindings()
3535
{
3636
// Unity Services Initialization
3737
Container.Bind<InitializationOptions>().To<InitializationOptions>().AsSingle();
3838
Container.Bind<ServicesInitializer>().FromInstance(m_ServicesInitializer).AsSingle();
39-
39+
4040
foreach (var logOutput in LogOutputs.Outputs)
4141
{
4242
logOutput.CurrentLevel = m_ServicesLogLevel;
@@ -59,34 +59,33 @@ public override void InstallBindings()
5959

6060
ApiSourceVersion apiVersionOriginal = ApiSourceVersion.GetApiSourceVersionForAssembly(assembly);
6161
var serviceHttpClient = new ServiceHttpClient(httpClient, m_CompositeAuthenticator, playerSettings).WithApiSourceHeaders(apiVersionOriginal.Name, apiVersionOriginal.Version + GetFormattedPlatformStr());
62-
var organizationRepository = new AuthenticatorOrganizationRepository(serviceHttpClient, serviceHostResolver);
6362
var assetRepository = AssetRepositoryFactory.Create(serviceHttpClient, serviceHostResolver);
6463

6564
Container.Bind<ICloudSession>().FromInstance(new CloudSession(m_CompositeAuthenticator));
6665

6766
Container.Bind<IServiceHostResolver>().FromInstance(serviceHostResolver).AsSingle();
6867
Container.Bind<IAppIdProvider>().FromInstance(playerSettings).AsSingle();
6968
Container.Bind<IServiceHttpClient>().FromInstance(serviceHttpClient).AsSingle();
70-
Container.Bind<IAuthenticatedUserInfoProvider>().FromInstance(m_CompositeAuthenticator).AsSingle();
69+
Container.Bind<IUserInfoProvider>().FromInstance(m_CompositeAuthenticator).AsSingle();
7170
Container.Bind<IServiceAuthorizer>().FromInstance(m_CompositeAuthenticator).AsSingle();
72-
Container.Bind<IOrganizationRepository>().FromInstance(organizationRepository).AsSingle();
71+
Container.Bind<IOrganizationRepository>().FromInstance(m_CompositeAuthenticator).AsSingle();
7372
Container.Bind<IAssetRepository>().FromInstance(assetRepository).AsSingle();
7473

75-
var queryArguments = new QueryArgumentsProcessor();
74+
var queryArgumentsProcessor = new QueryArgumentsProcessor();
7675
var deepLinkProvider = new DeepLinkProvider(serviceHttpClient,
77-
queryArguments,
76+
queryArgumentsProcessor,
7877
serviceHostResolver,
7978
new UnityRuntimeUrlProcessor(),
8079
playerSettings
8180
);
82-
Container.Bind<IQueryArgumentsProcessor>().FromInstance(queryArguments).AsSingle();
81+
Container.Bind<IQueryArgumentsProcessor>().FromInstance(queryArgumentsProcessor).AsSingle();
8382
Container.Bind<IDeepLinkProvider>().FromInstance(deepLinkProvider).AsSingle();
8483
Container.Bind<IUrlRedirectionInterceptor>().FromInstance(UrlRedirectionInterceptor.GetInstance()).AsSingle();
8584
var clipboard = ClipboardFactory.Create();
8685
Container.Bind<IClipboard>().FromInstance(clipboard).AsSingle();
8786

8887
var webSocketClientFactory = new WebSocketClientFactory();
89-
88+
9089
m_MonitoringClient = new ServiceMessagingClient(webSocketClientFactory.Create(), m_CompositeAuthenticator, playerSettings);
9190
m_JoinerClient = new ServiceMessagingClient(webSocketClientFactory.Create(), m_CompositeAuthenticator, playerSettings);
9291
var presenceManager = new PresenceManager(m_CompositeAuthenticator, serviceHttpClient, serviceHostResolver, playerSettings);
@@ -101,7 +100,7 @@ public override void InstallBindings()
101100
static string GetFormattedPlatformStr()
102101
{
103102
/* Event Format is as follow :
104-
103+
105104
{project name}@{version}_|_{target platform}_|_{editor platform}
106105
107106
project name : set by ApiSourceVersion.Name

ReferenceProject/Assets/_Modules/Annotation/Runtime/Scripts/AnnotationController.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,9 @@ public void CreateComment(ITopic topic, string comment)
202202

203203
public bool CheckPermissions(AnnotationsPermission permission)
204204
{
205+
if (m_PermissionsController.Permissions == null)
206+
return false;
207+
205208
switch (permission)
206209
{
207210
case AnnotationsPermission.Read:

0 commit comments

Comments
 (0)