コード例 #1
0
    public void OnEnable()
    {
        localSyncObject    = GetComponent <RemoteEntitySyncObject>();
        localStateOverride = GetComponent <ARRHierarchicalStateOverrideComponent>();

        if (localStateOverride == null)
        {
            localStateOverride = gameObject.AddComponent <ARRHierarchicalStateOverrideComponent>();
            var remoteStateOverride = localSyncObject.Entity.FindComponentOfType <HierarchicalStateOverrideComponent>();

            if (remoteStateOverride == null)
            {
                // if there is no HierarchicalStateOverrideComponent on the remote side yet, create one
                localStateOverride.Create(RemoteManagerUnity.CurrentSession);
            }
            else
            {
                // otherwise, bind our local stateOverride component to the remote component
                localStateOverride.Bind(remoteStateOverride);
            }
        }

        localStateOverride.RemoteComponent.TintColor = HighlightColor.toRemote();
        localSyncObject.SyncEveryFrame = true;
    }
コード例 #2
0
    public override void RemoveOverride()
    {
        var remoteStateOverride = TargetEntity.Entity.FindComponentOfType <HierarchicalStateOverrideComponent>();

        if (remoteStateOverride != null)
        {
            remoteStateOverride.Destroy();
        }

        if (localOverride == null)
        {
            localOverride = gameObject.GetComponent <ARRHierarchicalStateOverrideComponent>();
        }

        if (localOverride != null)
        {
            Destroy(localOverride);
        }
    }