# FAQ

*   Which objects can I bind?

    > Potentially any object: components, monobehaviours, materials, scriptable objects, assets.&#x20;
    >
    > The user has full freedom what to bind, and needs to take care, especially when binding meshes and textures.
*   Can I bind fields of third party scripts and plugins?

    > Any serialized field, if it uses a default drawer or its drawer is done correctly\*, can likely be bound.&#x20;
    >
    > \*A drawer needs to call BeginProperty before drawing the property, or a PropertyField is used when drawing.&#x20;
*   How can I integrate BindingSystem in an existing project?

    > If most of your serialized fields are only read, then it is sufficient to change those from `T` to `Bind<T>` where `T` is the type of the field/property. The implicit conversion should help out with getting the data from those fields/properties without further code modifications. For remaining types it is enough to add `.Value` to get the real value. The **reserializer**, if enabled, will kick in and perform value reserialization to keep your data intact during transition.
*   Does it work with IL2CPP backend?

    > Yes, absolutely.&#x20;
*   Can I modify multiple objects with bind fields?

    > Yes you can, although changes to **Converters** and **Modifiers** are not allowed.
*   Does the system support **Odin Inspector**?

    > Yes it does support it. Even more, the attributes on top of a <mark style="color:orange;">`Bind<T`</mark>will be transferred to it's inner value.
*   Why I cannot set very long paths?

    > Paths are trimmed when a path loop is detected, thus limiting long repetitive paths.
*   Can I bind methods?

    > Currently binding methods is only possible through code and is not fully tested yet. This feature will be available in the next major version.

    > To bind a method in code, the path should define a method:

    ```csharp
    myBoundFloat = new Bind<float>(gameObject.transform, "GetSiblingIndex()");
    // or with parameters
    myBoundTransform = new Bind<Transform>(gameObject.transform, "GetChild(Int32)", 1);
    ```
