def await_component_value_equals(cli,
                                 transform_ref,
                                 component_type,
                                 name,
                                 value,
                                 timeout_seconds=DEFAULT_TIMEOUT_SECONDS):
    """
    Waits for component field or property to become provided value
    :param cli:
    :param transform_ref: The path of the transform where the component resides
    :param component_type: The C# type name of the component GetComponent(type)
    :param name: The field or property name.
    :param value: The value to check for equality (String | Number | Boolean)
    :param timeout_seconds: How long until this returns with failure
    :return bool(response['payload']['success'])
    """
    # Ensure backwards compatibility with previous versions of this command that took a transform_path string.
    transform_ref = TransformRef.convert_to_transform_ref(transform_ref)

    message_payload = {
        "transform_ref": TransformRef.to_payload(transform_ref),
        "component_type": component_type,
        "name": name,
        "value": value,
        "timeout": timeout_seconds
    }
    msg = message.Message("await.unity.component.value.equals",
                          message_payload)
    cli.send_message(msg)

    response = cli.read_message()
    verify_response(response)
    return bool(response['payload']['success'])
def await_all_transforms_exist(cli,
                               transform_refs,
                               does_exist=DEFAULT_TRANSFORM_EXISTS,
                               timeout_seconds=DEFAULT_TIMEOUT_SECONDS):
    """
    Waits for all transforms specified in transform_refs to exist or not based on does_exist.
    :param cli:
    :param transform_refs: An array of transform paths [...]
    :param does_exist: Whether or not to await for exist state (True | False)
    :param timeout_seconds: How long until this returns with failure
    :return: bool
    """
    # Ensure backwards compatibility with previous versions of this command that took a transform_paths string array.
    transform_refs = TransformRef.convert_to_transform_refs(transform_refs)

    message_payload = {
        "transform_refs": TransformRef.list_to_payload(transform_refs),
        "do_exist": does_exist,
        "match_mode": "All",
        "timeout": timeout_seconds
    }
    msg = message.Message("await.unity.transform.exists", message_payload)
    cli.send_message(msg)

    response = cli.read_message()
    verify_response(response)
    return bool(response['payload']['success'])
def await_renderer_visible(cli,
                           transform_ref,
                           is_visible=DEFAULT_RENDERER_VISIBLE,
                           timeout_seconds=DEFAULT_TIMEOUT_SECONDS):
    """
    Waits for a transform renderer to become visible based on is_visible.
    :param cli:
    :param transform_ref:
    :param is_visible: Whether or not to await for visible state (True | False)
    :param timeout_seconds: How long until this returns with failure
    :return: bool
    """
    # Ensure backwards compatibility with previous versions of this command that took a transform_path string.
    transform_ref = TransformRef.convert_to_transform_ref(transform_ref)

    message_payload = {
        "transform_ref": TransformRef.to_payload(transform_ref),
        "is_visible": is_visible,
        "timeout": timeout_seconds
    }
    msg = message.Message("await.unity.renderer.visible", message_payload)
    cli.send_message(msg)

    response = cli.read_message()
    verify_response(response)
    return bool(response['payload']['success'])
def fetch_transform_children(cli, transform_ref, recursive=DEFAULT_RECURSIVE):
    """
    Requests children of the specified transform. Children may optionally be fetched recursively.

    Children are returned as an array of TransformRef instances. Each instance has a ``children`` property, which is
    interpreted as follows:
        * If children = None, the property wasn't fetched (recursive = False).
        * If children = [], the property was fetched (recursive = True), but the TransformRef doesn't have children.
    :param cli:
    :param transform_ref: Specifies the transform to request children for.
    :param recursive: If True, fetch children recursively; otherwise, fetch immediate children only.
    :return: Array of TransformRefs representing the immediate children of the specified transform. If children are
    fetched recursively (recursive = True), then grandchildren, etc. can be accessed via the ``children`` property of
    the returned TransformRefs.
    """
    # Ensure backwards compatibility with previous versions of this command that took a transform_path string.
    transform_ref = TransformRef.convert_to_transform_ref(transform_ref)

    message_payload = {
        "transform_ref": TransformRef.to_payload(transform_ref),
        "recursive": recursive
    }

    msg = message.Message("fetch.unity.transform.children", message_payload)
    cli.send_message(msg)

    response = cli.read_message()
    verify_response(response)

    children = TransformRef.list_from_payload(response['payload']['children'],
                                              transform_ref)
    return children
    def test_calculate_path(self):
        menu = TransformRef("Path/To/Menu")

        button = TransformRef("Button", parent=menu)
        assert button.transform_path == "Button"
        assert button.get_relative_transform_path() == "Button"
        assert button.get_absolute_transform_path() == "Path/To/Menu/Button"

        button.set_parent(None)
        assert button.transform_path == "Path/To/Menu/Button"
        assert button.get_relative_transform_path() == "Path/To/Menu/Button"
        assert button.get_absolute_transform_path() == "Path/To/Menu/Button"
def query_renderer_visible(cli, transform_ref):
    """
    Requests status on whether a renderer at transform_ref is visible.
    :param cli:
    :param transform_ref:
    :return: bool
    """
    # Ensure backwards compatibility with previous versions of this command that took a transform_path string.
    transform_ref = TransformRef.convert_to_transform_ref(transform_ref)

    message_payload = {"transform_ref": TransformRef.to_payload(transform_ref)}
    msg = message.Message("query.unity.renderer.visible", message_payload)
    cli.send_message(msg)

    response = cli.read_message()
    verify_response(response)
    return bool(response['payload']['result'])
Пример #7
0
    def test_calculate_path_relative(self):
        transform_a = TransformRef("Some/Path")
        transform_b = TransformRef("Other")
        transform_b.add_child_ref(transform_a)

        assert transform_a.get_rendered_transform_path_relative(
            transform_b) == "Some/Path"
def fetch_transform_screen_position(cli, transform_ref):
    """
    Requests screen position of a transform at path. WorldToScreenPoint is used for 3D, otherwise
    a screen-scaled center of RectTransform is used.
    :param cli:
    :param transform_ref:
    :return: [x,y]
    """
    # Ensure backwards compatibility with previous versions of this command that took a transform_path string.
    transform_ref = TransformRef.convert_to_transform_ref(transform_ref)

    message_payload = {"transform_ref": TransformRef.to_payload(transform_ref)}
    msg = message.Message("fetch.unity.transform.screenPosition",
                          message_payload)
    cli.send_message(msg)

    response = cli.read_message()
    verify_response(response)
    return [response['payload']['x'], response['payload']['y']]
def fetch_component_value(cli, transform_ref, component_type, name):
    """
    Requests value from a component field or property
    :param cli:
    :param transform_ref: The path of the transform where the component resides
    :param component_type: The C# type name of the component GetComponent(type)
    :param name: The field or property name.
    :return: Component value
    """
    # Ensure backwards compatibility with previous versions of this command that took a transform_path string.
    transform_ref = TransformRef.convert_to_transform_ref(transform_ref)

    message_payload = {
        "transform_ref": TransformRef.to_payload(transform_ref),
        "component_type": component_type,
        "name": name
    }
    msg = message.Message("fetch.unity.component.value", message_payload)
    cli.send_message(msg)

    response = cli.read_message()
    verify_response(response)
    return response['payload']['result']
def assign_component_value(cli, transform_ref, component_type, name, value):
    """
    Assigns a value to a component
    :param cli:
    :param transform_ref: The path of the transform where the component resides
    :param component_type: The C# type name of the component GetComponent(type)
    :param name: The field or property name.
    :param value: The value to assign (String | Number | Boolean)
    :return: bool
    """
    # Ensure backwards compatibility with previous versions of this command that took a transform_path string.
    transform_ref = TransformRef.convert_to_transform_ref(transform_ref)

    message_payload = {
        "transform_ref": TransformRef.to_payload(transform_ref),
        "component_type": component_type,
        "name": name,
        "value": value
    }
    msg = message.Message("assign.unity.component.value", message_payload)
    cli.send_message(msg)

    response = cli.read_message()
    verify_response(response)
def fetch_transform(cli, transform_ref, recursive=DEFAULT_RECURSIVE):
    """
    Wrapper around ``fetch_transform_children`` that returns the original transform reference instead of its children.

    :param cli:
    :param transform_ref: Specifies the transform to request children for.
    :param recursive: If True, fetch children recursively; otherwise, fetch immediate children only.
    :return: The original transform reference, with its ``children`` property set as described in the documentation for
    the ``fetch_transform_children`` command.
    """
    # Ensure backwards compatibility with previous versions of this command that took a transform_path string.
    transform_ref = TransformRef.convert_to_transform_ref(transform_ref)

    fetch_transform_children(cli, transform_ref, recursive)

    return transform_ref