docs.unity3d.com
    Show / Hide Table of Contents

    Class EditorPropertyDriver

    Allows for making temporary changes to Components in a scene whilst previewing a Locale. Any changes made to a property that is marked as driven will be ignored when saving the scene and reverted when the property is unregistered or SelectedLocale is set to null.

    Inheritance
    Object
    EditorPropertyDriver
    Namespace: UnityEngine.Localization
    Syntax
    public static class EditorPropertyDriver

    Methods

    RegisterProperty(Object, String)

    Mark the property as Driven in the editor. When a property is marked as driven it is considered to be a temporary change, that is the new values applied to the property will be ignored and not saved into the scene. The value will revert back to its original value when UnregisterProperty(Object, String) is called or SelectedLocale is set to null. Calling this method in play mode or a player build will do nothing.

    Declaration
    public static void RegisterProperty(Object target, string propertyPath)
    Parameters
    Type Name Description
    Object target

    The object that the property is part of.

    String propertyPath

    The serialized property path. The value that would be used to access using a SerializedProperty

    Examples

    This shows how to support non-destructive Edit Mode changes using EditorPropertyDriver.

    using UnityEngine;
    using UnityEngine.Localization;
    
    // To support Edit mode we need to use ExecuteAlways.
    [ExecuteAlways]
    [RequireComponent(typeof(TextMesh))]
    public class EditModeSupportExample : MonoBehaviour
    {
    public LocalizedString localizedString;
    TextMesh m_TextMesh;
    
    void Start()
    {
        localizedString.StringChanged += UpdateTextMesh;
        m_TextMesh = GetComponent<TextMesh>();
    }
    
    void UpdateTextMesh(string text)
    {
        // This will let us make temporary changes to a serialized property.
        // When the Locale is changed back to None the changes will be reverted
        // back to the original value. This must be called before we make any changes.
        // Calling this in a player build will do nothing.
        EditorPropertyDriver.RegisterProperty(m_TextMesh, "m_Text");
    
        m_TextMesh.text = text;
    }
    }

    UnregisterProperty(Object, String)

    Removed the property tracking and reverts the value back to the original value it was before RegisterProperty(Object, String) was called. In most cases you will not need to call this unless the driven properties are likely to change dynamically. Calling this method in play mode or a player build will do nothing.

    Declaration
    public static void UnregisterProperty(Object target, string propertyPath)
    Parameters
    Type Name Description
    Object target

    The object that the property is part of.

    String propertyPath

    The serialized property path. The value that would be used to access using a SerializedProperty

    Back to top
    Terms of use
    Copyright © 2023 Unity Technologies — Terms of use
    • Legal
    • Privacy Policy
    • Cookies
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)
    "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
    Generated by DocFX on 18 October 2023