> For the complete documentation index, see [llms.txt](https://kinematicsoup.gitbook.io/scene-fusion/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kinematicsoup.gitbook.io/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfcomponenttranslator.md).

# Class sfComponentTranslator

Namespace: [KS.SceneFusion.Client.Unity.Editor](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor.md)\
Assembly: KSUnity-Source.dll

Manages syncing of components

```csharp
public class sfComponentTranslator : sfBaseUObjectTranslator
```

#### Inheritance

object ← [sfBaseTranslator](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbasetranslator.md) ← [sfBaseUObjectTranslator](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbaseuobjecttranslator.md) ← [sfComponentTranslator](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfcomponenttranslator.md)

#### Inherited Members

[sfBaseUObjectTranslator.m\_propertyChangeHandlers](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbaseuobjecttranslator.md#ks_scenefusion_client_unity_editor_sfbaseuobjecttranslator_m_propertychangehandlers), [sfBaseUObjectTranslator.PostPropertyChange](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbaseuobjecttranslator.md#ks_scenefusion_client_unity_editor_sfbaseuobjecttranslator_postpropertychange), [sfBaseUObjectTranslator.PostUObjectChange](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbaseuobjecttranslator.md#ks_scenefusion_client_unity_editor_sfbaseuobjecttranslator_postuobjectchange), [sfBaseUObjectTranslator.OnPropertyChange(sfBaseProperty)](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbaseuobjecttranslator.md#ks_scenefusion_client_unity_editor_sfbaseuobjecttranslator_onpropertychange_ks_scenefusion_sfbasepro), [sfBaseUObjectTranslator.OnRemoveField(sfDictionaryProperty, string)](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbaseuobjecttranslator.md#ks_scenefusion_client_unity_editor_sfbaseuobjecttranslator_onremovefield_ks_scenefusion_sfdictionary), [sfBaseUObjectTranslator.OnListAdd(sfListProperty, int, int)](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbaseuobjecttranslator.md#ks_scenefusion_client_unity_editor_sfbaseuobjecttranslator_onlistadd_ks_scenefusion_sflistproperty_s), [sfBaseUObjectTranslator.OnListRemove(sfListProperty, int, int)](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbaseuobjecttranslator.md#ks_scenefusion_client_unity_editor_sfbaseuobjecttranslator_onlistremove_ks_scenefusion_sflistpropert), [sfBaseUObjectTranslator.CreateObject(Object, string)](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbaseuobjecttranslator.md#ks_scenefusion_client_unity_editor_sfbaseuobjecttranslator_createobject_unityengine_object_system_st), [sfBaseUObjectTranslator.CallPropertyChangeHandlers(Object, sfBaseProperty, string)](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbaseuobjecttranslator.md#ks_scenefusion_client_unity_editor_sfbaseuobjecttranslator_callpropertychangehandlers_unityengine_ob), [sfBaseUObjectTranslator.CallPostPropertyChangeHandlers(Object, sfBaseProperty, string)](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbaseuobjecttranslator.md#ks_scenefusion_client_unity_editor_sfbaseuobjecttranslator_callpostpropertychangehandlers_unityengin), [sfBaseUObjectTranslator.CallPostUObjectChangeHandlers(Object)](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbaseuobjecttranslator.md#ks_scenefusion_client_unity_editor_sfbaseuobjecttranslator_callpostuobjectchangehandlers_unityengine), [sfBaseUObjectTranslator.OnSelect(sfObject, Object)](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbaseuobjecttranslator.md#ks_scenefusion_client_unity_editor_sfbaseuobjecttranslator_onselect_ks_scenefusion_client_sfobject_u), [sfBaseUObjectTranslator.OnDeselect(sfObject, Object)](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbaseuobjecttranslator.md#ks_scenefusion_client_unity_editor_sfbaseuobjecttranslator_ondeselect_ks_scenefusion_client_sfobject), [sfBaseUObjectTranslator.OnReplace(sfObject, Object, Object)](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbaseuobjecttranslator.md#ks_scenefusion_client_unity_editor_sfbaseuobjecttranslator_onreplace_ks_scenefusion_client_sfobject), [sfBaseTranslator.Initialize()](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbasetranslator.md#ks_scenefusion_client_unity_editor_sfbasetranslator_initialize), [sfBaseTranslator.OnSessionConnect()](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbasetranslator.md#ks_scenefusion_client_unity_editor_sfbasetranslator_onsessionconnect), [sfBaseTranslator.OnSessionDisconnect()](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbasetranslator.md#ks_scenefusion_client_unity_editor_sfbasetranslator_onsessiondisconnect), [sfBaseTranslator.TryCreate(Object, out sfObject)](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbasetranslator.md#ks_scenefusion_client_unity_editor_sfbasetranslator_trycreate_unityengine_object_ks_scenefusion_clie), [sfBaseTranslator.GetUObject(sfObject, Object)](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbasetranslator.md#ks_scenefusion_client_unity_editor_sfbasetranslator_getuobject_ks_scenefusion_client_sfobject_unitye), [sfBaseTranslator.OnCreate(sfObject, int)](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbasetranslator.md#ks_scenefusion_client_unity_editor_sfbasetranslator_oncreate_ks_scenefusion_client_sfobject_system_i), [sfBaseTranslator.OnConfirmCreate(sfObject)](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbasetranslator.md#ks_scenefusion_client_unity_editor_sfbasetranslator_onconfirmcreate_ks_scenefusion_client_sfobject), [sfBaseTranslator.OnDelete(sfObject)](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbasetranslator.md#ks_scenefusion_client_unity_editor_sfbasetranslator_ondelete_ks_scenefusion_client_sfobject), [sfBaseTranslator.OnConfirmDelete(sfObject, bool)](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbasetranslator.md#ks_scenefusion_client_unity_editor_sfbasetranslator_onconfirmdelete_ks_scenefusion_client_sfobject_s), [sfBaseTranslator.OnConfirmSubscription(sfObject, bool)](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbasetranslator.md#ks_scenefusion_client_unity_editor_sfbasetranslator_onconfirmsubscription_ks_scenefusion_client_sfob), [sfBaseTranslator.OnLock(sfObject)](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbasetranslator.md#ks_scenefusion_client_unity_editor_sfbasetranslator_onlock_ks_scenefusion_client_sfobject), [sfBaseTranslator.OnUnlock(sfObject)](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbasetranslator.md#ks_scenefusion_client_unity_editor_sfbasetranslator_onunlock_ks_scenefusion_client_sfobject), [sfBaseTranslator.OnLockOwnerChange(sfObject)](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbasetranslator.md#ks_scenefusion_client_unity_editor_sfbasetranslator_onlockownerchange_ks_scenefusion_client_sfobject), [sfBaseTranslator.OnDirectLockChange(sfObject)](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbasetranslator.md#ks_scenefusion_client_unity_editor_sfbasetranslator_ondirectlockchange_ks_scenefusion_client_sfobjec), [sfBaseTranslator.OnParentChange(sfObject, int)](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbasetranslator.md#ks_scenefusion_client_unity_editor_sfbasetranslator_onparentchange_ks_scenefusion_client_sfobject_sy), [sfBaseTranslator.OnPropertyChange(sfBaseProperty)](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbasetranslator.md#ks_scenefusion_client_unity_editor_sfbasetranslator_onpropertychange_ks_scenefusion_sfbaseproperty), [sfBaseTranslator.OnRemoveField(sfDictionaryProperty, string)](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbasetranslator.md#ks_scenefusion_client_unity_editor_sfbasetranslator_onremovefield_ks_scenefusion_sfdictionarypropert), [sfBaseTranslator.OnListAdd(sfListProperty, int, int)](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbasetranslator.md#ks_scenefusion_client_unity_editor_sfbasetranslator_onlistadd_ks_scenefusion_sflistproperty_system_i), [sfBaseTranslator.OnListRemove(sfListProperty, int, int)](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbasetranslator.md#ks_scenefusion_client_unity_editor_sfbasetranslator_onlistremove_ks_scenefusion_sflistproperty_syste), [sfBaseTranslator.OnSPropertyChange(sfObject, SerializedProperty)](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbasetranslator.md#ks_scenefusion_client_unity_editor_sfbasetranslator_onspropertychange_ks_scenefusion_client_sfobject), [sfBaseTranslator.OnSelect(sfObject, Object)](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbasetranslator.md#ks_scenefusion_client_unity_editor_sfbasetranslator_onselect_ks_scenefusion_client_sfobject_unityeng), [sfBaseTranslator.OnDeselect(sfObject, Object)](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbasetranslator.md#ks_scenefusion_client_unity_editor_sfbasetranslator_ondeselect_ks_scenefusion_client_sfobject_unitye)

## Properties

### ComponentInitializers <a href="#ks_scenefusion_client_unity_editor_sfcomponenttranslator_componentinitializers" id="ks_scenefusion_client_unity_editor_sfcomponenttranslator_componentinitializers"></a>

Maps component types to initializers to call after initializing a component with server values, but before creating the component's children.

```csharp
public sfTypeEventMap<sfComponentTranslator.Initializer> ComponentInitializers { get; }
```

#### Property Value

[sfTypeEventMap](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sftypeeventmap-1.md)<[sfComponentTranslator](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfcomponenttranslator.md).[Initializer](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfcomponenttranslator/ks.scenefusion.client.unity.editor.sfcomponenttranslator.initializer.md)>

### DeleteHandlers <a href="#ks_scenefusion_client_unity_editor_sfcomponenttranslator_deletehandlers" id="ks_scenefusion_client_unity_editor_sfcomponenttranslator_deletehandlers"></a>

Maps component types to delete handlers to call when components are deleted by the server.

```csharp
public sfTypeEventMap<sfComponentTranslator.DeleteHandler> DeleteHandlers { get; }
```

#### Property Value

[sfTypeEventMap](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sftypeeventmap-1.md)<[sfComponentTranslator](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfcomponenttranslator.md).[DeleteHandler](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfcomponenttranslator/ks.scenefusion.client.unity.editor.sfcomponenttranslator.deletehandler.md)>

### LocalDeleteHandlers <a href="#ks_scenefusion_client_unity_editor_sfcomponenttranslator_localdeletehandlers" id="ks_scenefusion_client_unity_editor_sfcomponenttranslator_localdeletehandlers"></a>

Maps component types to delete handlers to call when components are deleted locally.

```csharp
public sfTypeEventMap<sfComponentTranslator.LocalDeleteHandler> LocalDeleteHandlers { get; }
```

#### Property Value

[sfTypeEventMap](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sftypeeventmap-1.md)<[sfComponentTranslator](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfcomponenttranslator.md).[LocalDeleteHandler](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfcomponenttranslator/ks.scenefusion.client.unity.editor.sfcomponenttranslator.localdeletehandler.md)>

### ObjectInitializers <a href="#ks_scenefusion_client_unity_editor_sfcomponenttranslator_objectinitializers" id="ks_scenefusion_client_unity_editor_sfcomponenttranslator_objectinitializers"></a>

Maps component types to initializers to call after create the sfObject for a component, but before creating the child objects.

```csharp
public sfTypeEventMap<sfComponentTranslator.Initializer> ObjectInitializers { get; }
```

#### Property Value

[sfTypeEventMap](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sftypeeventmap-1.md)<[sfComponentTranslator](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfcomponenttranslator.md).[Initializer](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfcomponenttranslator/ks.scenefusion.client.unity.editor.sfcomponenttranslator.initializer.md)>

## Methods

### ApplyComponentOrder(GameObject) <a href="#ks_scenefusion_client_unity_editor_sfcomponenttranslator_applycomponentorder_unityengine_gameobject" id="ks_scenefusion_client_unity_editor_sfcomponenttranslator_applycomponentorder_unityengine_gameobject"></a>

Applies component order changes from the server to a game object.

```csharp
public void ApplyComponentOrder(GameObject gameObject)
```

#### Parameters

`gameObject` GameObject

gameObject to apply component order to.

### CreateObject(Component, bool) <a href="#ks_scenefusion_client_unity_editor_sfcomponenttranslator_createobject_unityengine_component_system_b" id="ks_scenefusion_client_unity_editor_sfcomponenttranslator_createobject_unityengine_component_system_b"></a>

Recursively creates sfObjects for a component and its children.

```csharp
public sfObject CreateObject(Component component, bool isTransform = false)
```

#### Parameters

`component` Component

component to create sfObject for.

`isTransform` bool

true if the component is a transform.

#### Returns

[sfObject](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfobject.md)

### DestroyComponent(Component) <a href="#ks_scenefusion_client_unity_editor_sfcomponenttranslator_destroycomponent_unityengine_component" id="ks_scenefusion_client_unity_editor_sfcomponenttranslator_destroycomponent_unityengine_component"></a>

Destroys a component. First destroys any components that depend on the component being destroyed.

```csharp
public void DestroyComponent(Component component)
```

#### Parameters

`component` Component

component to destroy.

### DontSync\<T>() <a href="#ks_scenefusion_client_unity_editor_sfcomponenttranslator_dontsync__1" id="ks_scenefusion_client_unity_editor_sfcomponenttranslator_dontsync__1"></a>

Don't sync components of type T.

```csharp
public void DontSync<T>() where T : Component
```

#### Type Parameters

`T`

### DontSync(Type) <a href="#ks_scenefusion_client_unity_editor_sfcomponenttranslator_dontsync_system_type" id="ks_scenefusion_client_unity_editor_sfcomponenttranslator_dontsync_system_type"></a>

Don't sync components of the given type.

```csharp
public void DontSync(Type type)
```

#### Parameters

`type` Type

type to not sync.

### GetOrAddComponent(GameObject, string, bool) <a href="#ks_scenefusion_client_unity_editor_sfcomponenttranslator_getoraddcomponent_unityengine_gameobject_sy" id="ks_scenefusion_client_unity_editor_sfcomponenttranslator_getoraddcomponent_unityengine_gameobject_sy"></a>

Gets a component by name that is not mapped to an sfObject, or creates one if none is found. You can get the name using sfComponentUtils.GetName. We check for an existing component instead of always adding one because sometimes adding one component will cause another component to be added, and if we then added the second component it would be added twice.

```csharp
public Component GetOrAddComponent(GameObject gameObject, string name, bool isPrefabInstanceComponent)
```

#### Parameters

`gameObject` GameObject

gameObject to get component from or add component to.

`name` string

`isPrefabInstanceComponent` bool

#### Returns

Component

name of component to get or add.

### Initialize() <a href="#ks_scenefusion_client_unity_editor_sfcomponenttranslator_initialize" id="ks_scenefusion_client_unity_editor_sfcomponenttranslator_initialize"></a>

Initialization

```csharp
public override void Initialize()
```

### InitializeComponent(GameObject, sfObject) <a href="#ks_scenefusion_client_unity_editor_sfcomponenttranslator_initializecomponent_unityengine_gameobject" id="ks_scenefusion_client_unity_editor_sfcomponenttranslator_initializecomponent_unityengine_gameobject"></a>

Initializes the component for an sfObject from the sfObjectMap with server values, or creates one if there isn't one in the sfObjectMap. Recursively initializes children.

```csharp
public void InitializeComponent(GameObject gameObject, sfObject obj)
```

#### Parameters

`gameObject` GameObject

gameObject to attach the component to.

`obj` [sfObject](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfobject.md)

obj to initialize component for.

### IsSyncable(Component) <a href="#ks_scenefusion_client_unity_editor_sfcomponenttranslator_issyncable_unityengine_component" id="ks_scenefusion_client_unity_editor_sfcomponenttranslator_issyncable_unityengine_component"></a>

Checks if a component can be synced. Components are syncable if the following conditions are met:

* the component is not null
* it is not hidden
* it can be saved in the editor
* it is not blacklisted (DontSync wasn't called on its type).

```csharp
public bool IsSyncable(Component component)
```

#### Parameters

`component` Component

#### Returns

bool

### OnConfirmDelete(sfObject, bool) <a href="#ks_scenefusion_client_unity_editor_sfcomponenttranslator_onconfirmdelete_ks_scenefusion_client_sfobj" id="ks_scenefusion_client_unity_editor_sfcomponenttranslator_onconfirmdelete_ks_scenefusion_client_sfobj"></a>

Called when a locally-deleted component is confirmed as deleted.

```csharp
public override void OnConfirmDelete(sfObject obj, bool unsubscribed)
```

#### Parameters

`obj` [sfObject](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfobject.md)

obj that was confirmed as deleted.

`unsubscribed` bool

true if the deletion occurred because we unsubscribed from the object's parent.

### OnCreate(sfObject, int) <a href="#ks_scenefusion_client_unity_editor_sfcomponenttranslator_oncreate_ks_scenefusion_client_sfobject_sys" id="ks_scenefusion_client_unity_editor_sfcomponenttranslator_oncreate_ks_scenefusion_client_sfobject_sys"></a>

Called when a component is created by another user.

```csharp
public override void OnCreate(sfObject obj, int childIndex)
```

#### Parameters

`obj` [sfObject](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfobject.md)

obj that was created.

`childIndex` int

childIndex of the new object. -1 if the object is a root.

### OnDelete(sfObject) <a href="#ks_scenefusion_client_unity_editor_sfcomponenttranslator_ondelete_ks_scenefusion_client_sfobject" id="ks_scenefusion_client_unity_editor_sfcomponenttranslator_ondelete_ks_scenefusion_client_sfobject"></a>

Called when a component is deleted by another user.

```csharp
public override void OnDelete(sfObject obj)
```

#### Parameters

`obj` [sfObject](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfobject.md)

obj that was deleted.

### OnParentChange(sfObject, int) <a href="#ks_scenefusion_client_unity_editor_sfcomponenttranslator_onparentchange_ks_scenefusion_client_sfobje" id="ks_scenefusion_client_unity_editor_sfcomponenttranslator_onparentchange_ks_scenefusion_client_sfobje"></a>

Called when a component's parent or child index is changed by another user.

```csharp
public override void OnParentChange(sfObject obj, int childIndex)
```

#### Parameters

`obj` [sfObject](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfobject.md)

obj whose parent changed.

`childIndex` int

childIndex of the object. -1 if the object is a root.

### OnRemoveField(sfDictionaryProperty, string) <a href="#ks_scenefusion_client_unity_editor_sfcomponenttranslator_onremovefield_ks_scenefusion_sfdictionarypr" id="ks_scenefusion_client_unity_editor_sfcomponenttranslator_onremovefield_ks_scenefusion_sfdictionarypr"></a>

Called when a field is removed from a dictionary property.

```csharp
public override void OnRemoveField(sfDictionaryProperty dict, string name)
```

#### Parameters

`dict` [sfDictionaryProperty](/scene-fusion/api-reference/ks.scenefusion/ks.scenefusion.sfdictionaryproperty.md)

dict the field was removed from.

`name` string

name of the removed field.

### OnSessionConnect() <a href="#ks_scenefusion_client_unity_editor_sfcomponenttranslator_onsessionconnect" id="ks_scenefusion_client_unity_editor_sfcomponenttranslator_onsessionconnect"></a>

Called after connecting to a session.

```csharp
public override void OnSessionConnect()
```

### OnSessionDisconnect() <a href="#ks_scenefusion_client_unity_editor_sfcomponenttranslator_onsessiondisconnect" id="ks_scenefusion_client_unity_editor_sfcomponenttranslator_onsessiondisconnect"></a>

Called after disconnecting from a session.

```csharp
public override void OnSessionDisconnect()
```

### SyncComponentOrder(GameObject) <a href="#ks_scenefusion_client_unity_editor_sfcomponenttranslator_synccomponentorder_unityengine_gameobject" id="ks_scenefusion_client_unity_editor_sfcomponenttranslator_synccomponentorder_unityengine_gameobject"></a>

Sends component order changes for a game object to the server. If the object is locked, reverts the components to the server order.

```csharp
public void SyncComponentOrder(GameObject gameObject)
```

#### Parameters

`gameObject` GameObject

gameObject to sync component order for.

### SyncComponents(GameObject) <a href="#ks_scenefusion_client_unity_editor_sfcomponenttranslator_synccomponents_unityengine_gameobject" id="ks_scenefusion_client_unity_editor_sfcomponenttranslator_synccomponents_unityengine_gameobject"></a>

Checks for new or deleted components on a game object and sends changes to the server, or reverts to the server state if the game object is locked.

```csharp
public bool SyncComponents(GameObject gameObject)
```

#### Parameters

`gameObject` GameObject

gameObject to sync components on.

#### Returns

bool

true if components changed.

### TryCreate(Object, out sfObject) <a href="#ks_scenefusion_client_unity_editor_sfcomponenttranslator_trycreate_unityengine_object_ks_scenefusion" id="ks_scenefusion_client_unity_editor_sfcomponenttranslator_trycreate_unityengine_object_ks_scenefusion"></a>

Creates an sfObject for a uobject. Does not upload or create properties for the object.

```csharp
public override bool TryCreate(Object uobj, out sfObject outObj)
```

#### Parameters

`uobj` Object

uobj to create sfObject for.

`outObj` [sfObject](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfobject.md)

outObj created for the uobject.

#### Returns

bool

true if the uobject was handled by this translator.
