Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
BoundsControl proporciona un cuadro delimitador de tamaño automático, junto con prestaciones de manipulación para la rotación y la escala.
En MRTK 2.x, BoundsControl se generó principalmente en tiempo de ejecución mediante el uso de la configuración ScriptableObjects. En MRTK3, la configuración y personalización de BoundsControl se ha simplificado significativamente. Los objetos visuales y los identificadores de límites son simplemente un objeto prefabricado personalizable que BoundsControl crea instancias en tiempo de ejecución. Los desarrolladores pueden ajustar y personalizar el objeto prefabricado de objetos visuales, o incluso crear nuevos objetos visuales de límites desde cero. Proporcionamos implementaciones de objetos visuales de límites estándar, siguiendo el nuevo lenguaje de diseño de Mixed Reality.
Los nuevos objetos visuales ofrecen comentarios visuales optimizados que ilustran la intención y la manipulación del objeto por parte del usuario con un ruido visual mínimamente intrusivo.
Instalación
Simplemente agregue BoundsControl a un objeto existente y rellene la BoundsVisualsPrefab referencia con los objetos visuales de límites que desea usar. Proporcionamos algunos objetos visuales de límites pregenerados diferentes para que los use.
Importante
Se recomienda encarecidamente que los desarrolladores agreguen MinMaxScaleConstraint para evitar que el usuario escale el objeto a un tamaño inusablemente pequeño o grande.
Para usar los efectos de intención y enfoque de los objetos visuales de límites, debe tener un StatefulInteractable objeto en el objeto . Si no se detecta automáticamente el elemento interactable, puede especificar la conexión en el inspector BoundsControl.
Nota:
Se recomienda a los desarrolladores usar ObjectManipulator junto con BoundsControl para ofrecer a los usuarios una manipulación directa además de la manipulación basada en la prestación. ObjectManipulator puede servir como para los StatefulInteractable estados de puntero/enfoque a los que responden los objetos visuales de límites.
Objetos visuales enlazados prefabs
Ofrecemos varios objetos visuales de límites predefinidos para su uso con BoundsControl. Se recomienda a los desarrolladores que realicen variantes prefabricadas de estos objetos visuales y los personalicen para satisfacer sus necesidades. Las animaciones de identificador y los estados cuentan con la tecnología StateVisualizer, lo que permite a los desarrolladores personalizar aún más la apariencia de las prestaciones.
Controlar el estilo de oclusión
Estos objetos visuales enlazados ofrecen un diseño visual simplificado con menos distracciones para el usuario. Solo estarán visibles los identificadores pertinentes a lo largo de los bordes de los límites. Los objetos visuales enlazados contratan, expanden y cambian el color o el grosor en función de la intención del usuario y del progreso de la selección. Se recomienda encarecidamente usar este estilo visual de límites.
Solo intención
En algunos contextos, los identificadores pueden ser indeseables y es posible que los desarrolladores quieran usar solo los objetos visuales de límites como un indicador delicioso de la intención del usuario. Aunque este objeto prefabricado realiza el trabajo, se puede lograr el mismo efecto con cualquiera de los demás objetos visuales de límites seleccionando HandleType.None. Hemos descubierto que los objetos visuales de límites exprimibles son un elemento de comentarios visuales satisfactorio y agradable para muchos contextos diferentes, no solo para la manipulación basada en identificadores.
Estilo heredado
Estos objetos visuales de límites muestran todos los identificadores y bordes del cuadro. Esto coincide más estrechamente con el lenguaje de diseño heredado y el comportamiento anterior visto en MRTK 2.x; sin embargo, este diseño puede ser más distraído para los usuarios debido a ruido visual innecesario. Además, la presencia de los identificadores que se encuentran delante del objeto (y detrás) puede causar problemas con la manipulación indirecta de la mirada. No se recomienda usar este estilo para nuevas aplicaciones, especialmente aquellas que aprovechan la orientación de mirada.
Diseño de interacción
En la iteración actual, ofrecemos una interacción de activación o desactivación sencilla. Al hacer clic en los límites en contexto (es decir, seleccionar el objeto, no moverlo y liberarlo), los controladores se pueden activar y desactivar. La tolerancia de distancia para esta comprobación se puede ajustar con DragToggleThresholdy este comportamiento de activación se puede habilitar o deshabilitar con la ToggleHandlesOnClick propiedad .
Los identificadores se pueden activar o desactivar manualmente desde el código en cualquier momento estableciendo HandlesActive.
Cálculo automático de límites
BoundsControl intentará calcular automáticamente los límites del objeto asociado. Si se desea una forma de límites específica, compruebe la OverrideBounds opción y especifique el objeto bounds directamente. El sistema de cálculo de límites solo calculará los límites del objeto de invalidación especificado.
BoundsCalculationMethod influye en la forma en que el algoritmo calcula los límites. Si la forma visual del objeto cerrado no coincide necesariamente con el colisionador, o lo contrario es true, los desarrolladores pueden ajustar el método de cálculo para que prefiera usar límites de representador o colisionador, o una combinación de ambos.
Independientemente del método de cálculo, la Padding opción rellenará los límites uniformemente en unidades de mundo. Cuando los límites se aplana, el eje aplanado no se rellena.
Aplanar
BoundsControl también se puede usar para manipular contenido 2D. Si FlattenMode se establece en Auto, BoundsControl se acoplará a un límite rectangular 2D si el objeto es lo suficientemente plano a lo largo de cualquier eje. Si el objeto no es lo suficientemente plano, pero le gustaría seguir usando límites rectangulares, FlattenMode.Always siempre aplanará el BoundsControl a lo largo del eje más desolado. Por el contrario, FlattenMode.Never impedirá que BoundsControl se aplane, incluso cuando el objeto es muy fino.
Opciones de manipulación
El comportamiento de manipulación de BoundsControl se puede ajustar de varias maneras. La RotateAnchor opción controla el punto de pivote alrededor del cual se gira BoundsControl cuando se usan las prestaciones de rotación. Algunos puntos de pivote de algunos objetos están lejos de su centro visual, lo que puede causar incomodidad e imprecisión al manipular con los controladores de rotación. La especificación BoundsCenter de para RotateAnchor hará que BoundsControl gire siempre alrededor del centro geométrico de los límites calculados en lugar del origen real del objeto.
El comportamiento de escalado se puede establecer en Uniform o Non Uniform. En el modo Uniforme, todos los ejes del objeto se escalan juntos, manteniendo la relación de aspecto y la apariencia. El escalado no uniforme permite escalar cada eje del objeto de forma independiente.