> For the complete documentation index, see [llms.txt](https://postica.gitbook.io/binding-system-2/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://postica.gitbook.io/binding-system-2/product/faq.md).

# FAQ

* Which objects can I bind?

  > Potentially any object: components, monobehaviours, materials, scriptable objects, assets.
  >
  > 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.
  >
  > \*A drawer needs to call BeginProperty before drawing the property, or a PropertyField is used when drawing.
* 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.
* 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);
  ```
