> 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.sfbasetranslator.md).

# Class sfBaseTranslator

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

Base class for handling object events.

```csharp
public class sfBaseTranslator
```

#### Inheritance

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

#### Derived

[sfAssetPathTranslator](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfassetpathtranslator.md), [sfBaseUObjectTranslator](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfbaseuobjecttranslator.md), [sfConfigTranslator](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfconfigtranslator.md), [sfOcclusionTranslator](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfocclusiontranslator.md), [sfPrefabTranslator](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfprefabtranslator.md), [sfSceneTranslator](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfscenetranslator.md), [sfTerrainBrushTranslator](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfterrainbrushtranslator.md), [sfTerrainTranslator](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfterraintranslator.md)

## Methods

### GetUObject(sfObject, Object) <a href="#ks_scenefusion_client_unity_editor_sfbasetranslator_getuobject_ks_scenefusion_client_sfobject_unitye" id="ks_scenefusion_client_unity_editor_sfbasetranslator_getuobject_ks_scenefusion_client_sfobject_unitye"></a>

Gets the UObject for an sfObject.

```csharp
public virtual Object GetUObject(sfObject obj, Object current = null)
```

#### Parameters

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

obj to get UObject for.

`current` Object

current value of the serialized property we are getting the UObject reference for.

#### Returns

Object

for the sfObject.

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

Called after all translators are registered. Do one time initialization here that depends on other translators.

```csharp
public virtual void Initialize()
```

### OnConfirmCreate(sfObject) <a href="#ks_scenefusion_client_unity_editor_sfbasetranslator_onconfirmcreate_ks_scenefusion_client_sfobject" id="ks_scenefusion_client_unity_editor_sfbasetranslator_onconfirmcreate_ks_scenefusion_client_sfobject"></a>

Called when a locally created object is confirmed as created.

```csharp
public virtual void OnConfirmCreate(sfObject obj)
```

#### Parameters

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

obj that whose creation was confirmed.

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

Called when a locally deleted object is confirmed as deleted.

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

#### Parameters

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

obj that whose deletion was confirmed.

`unsubscribed` bool

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

### OnConfirmSubscription(sfObject, bool) <a href="#ks_scenefusion_client_unity_editor_sfbasetranslator_onconfirmsubscription_ks_scenefusion_client_sfob" id="ks_scenefusion_client_unity_editor_sfbasetranslator_onconfirmsubscription_ks_scenefusion_client_sfob"></a>

Called when our subscription status to an object changes.

```csharp
public virtual void OnConfirmSubscription(sfObject obj, bool subscribed)
```

#### Parameters

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

obj whose subscription status changed.

`subscribed` bool

True if we subscribed to receive the object's children.

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

Called when an object is created by another user.

```csharp
public virtual 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 new object. -1 if object is a root.

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

Called when an object is deleted by another user.

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

#### Parameters

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

obj that was deleted.

### OnDeselect(sfObject, Object) <a href="#ks_scenefusion_client_unity_editor_sfbasetranslator_ondeselect_ks_scenefusion_client_sfobject_unitye" id="ks_scenefusion_client_unity_editor_sfbasetranslator_ondeselect_ks_scenefusion_client_sfobject_unitye"></a>

Called when a uobject is deselected. The default implementation does nothing.

```csharp
public virtual void OnDeselect(sfObject obj, Object uobj)
```

#### Parameters

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

obj for the deselected uobject.

`uobj` Object

uobj that was deselected.

### OnDirectLockChange(sfObject) <a href="#ks_scenefusion_client_unity_editor_sfbasetranslator_ondirectlockchange_ks_scenefusion_client_sfobjec" id="ks_scenefusion_client_unity_editor_sfbasetranslator_ondirectlockchange_ks_scenefusion_client_sfobjec"></a>

Called when an object's direct lock owner changes.

```csharp
public virtual void OnDirectLockChange(sfObject obj)
```

#### Parameters

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

obj whose direct lock owner changed.

### OnListAdd(sfListProperty, int, int) <a href="#ks_scenefusion_client_unity_editor_sfbasetranslator_onlistadd_ks_scenefusion_sflistproperty_system_i" id="ks_scenefusion_client_unity_editor_sfbasetranslator_onlistadd_ks_scenefusion_sflistproperty_system_i"></a>

Called when one or more elements are added to a list property.

```csharp
public virtual void OnListAdd(sfListProperty list, int index, int count)
```

#### Parameters

`list` [sfListProperty](/scene-fusion/api-reference/ks.scenefusion/ks.scenefusion.sflistproperty.md)

list that elements were added to.

`index` int

index elements were inserted at.

`count` int

number of elements added.

### OnListRemove(sfListProperty, int, int) <a href="#ks_scenefusion_client_unity_editor_sfbasetranslator_onlistremove_ks_scenefusion_sflistproperty_syste" id="ks_scenefusion_client_unity_editor_sfbasetranslator_onlistremove_ks_scenefusion_sflistproperty_syste"></a>

Called when one or more elements are removed from a list property.

```csharp
public virtual void OnListRemove(sfListProperty list, int index, int count)
```

#### Parameters

`list` [sfListProperty](/scene-fusion/api-reference/ks.scenefusion/ks.scenefusion.sflistproperty.md)

list that elements were removed from.

`index` int

index elements were removed from.

`count` int

number of elements removed.

### OnLock(sfObject) <a href="#ks_scenefusion_client_unity_editor_sfbasetranslator_onlock_ks_scenefusion_client_sfobject" id="ks_scenefusion_client_unity_editor_sfbasetranslator_onlock_ks_scenefusion_client_sfobject"></a>

Called when an object is locked by another user.

```csharp
public virtual void OnLock(sfObject obj)
```

#### Parameters

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

obj that was locked.

### OnLockOwnerChange(sfObject) <a href="#ks_scenefusion_client_unity_editor_sfbasetranslator_onlockownerchange_ks_scenefusion_client_sfobject" id="ks_scenefusion_client_unity_editor_sfbasetranslator_onlockownerchange_ks_scenefusion_client_sfobject"></a>

Called when an object's lock owner changes.

```csharp
public virtual void OnLockOwnerChange(sfObject obj)
```

#### Parameters

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

obj whose lock owner changed.

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

Called when an object's parent is changed by another user.

```csharp
public virtual 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.

### OnPropertyChange(sfBaseProperty) <a href="#ks_scenefusion_client_unity_editor_sfbasetranslator_onpropertychange_ks_scenefusion_sfbaseproperty" id="ks_scenefusion_client_unity_editor_sfbasetranslator_onpropertychange_ks_scenefusion_sfbaseproperty"></a>

Called when an object property changes.

```csharp
public virtual void OnPropertyChange(sfBaseProperty property)
```

#### Parameters

`property` [sfBaseProperty](/scene-fusion/api-reference/ks.scenefusion/ks.scenefusion.sfbaseproperty.md)

property that changed.

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

Called when a field is removed from a dictionary property.

```csharp
public virtual 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 removed field.

### OnSPropertyChange(sfObject, SerializedProperty) <a href="#ks_scenefusion_client_unity_editor_sfbasetranslator_onspropertychange_ks_scenefusion_client_sfobject" id="ks_scenefusion_client_unity_editor_sfbasetranslator_onspropertychange_ks_scenefusion_client_sfobject"></a>

Called when a Unity serialized property changes.

```csharp
public virtual bool OnSPropertyChange(sfObject obj, SerializedProperty sprop)
```

#### Parameters

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

obj whose property changed.

`sprop` SerializedProperty

sprop that changed.

#### Returns

bool

false if the property change event should be handled by the default handler.

### OnSelect(sfObject, Object) <a href="#ks_scenefusion_client_unity_editor_sfbasetranslator_onselect_ks_scenefusion_client_sfobject_unityeng" id="ks_scenefusion_client_unity_editor_sfbasetranslator_onselect_ks_scenefusion_client_sfobject_unityeng"></a>

Called when a uobject is selected. The default implementation does nothing.

```csharp
public virtual void OnSelect(sfObject obj, Object uobj)
```

#### Parameters

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

obj for the selected uobject.

`uobj` Object

uobj that was selected.

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

Called after connecting to a session.

```csharp
public virtual void OnSessionConnect()
```

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

Called after disconnecting from a session.

```csharp
public virtual void OnSessionDisconnect()
```

### OnUnlock(sfObject) <a href="#ks_scenefusion_client_unity_editor_sfbasetranslator_onunlock_ks_scenefusion_client_sfobject" id="ks_scenefusion_client_unity_editor_sfbasetranslator_onunlock_ks_scenefusion_client_sfobject"></a>

Called when an object is unlocked by another user.

```csharp
public virtual void OnUnlock(sfObject obj)
```

#### Parameters

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

obj that was unlocked.

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

Creates an sfObject for a uobject.

```csharp
public virtual 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.
