AutoSkill Indicador UI fuera de pantalla con margen superior

Sistema en Unity para rastrear objetos 3D con elementos de interfaz (UI). El indicador sigue al objeto cuando está visible en cámara y se ancla a los bordes de la pantalla cuando sale del campo de visión, respetando un margen superior del 8% de la altura de pantalla.

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/Spanish/indicador-ui-fuera-de-pantalla-con-margen-superior" ~/.claude/skills/ecnu-icalk-autoskill-indicador-ui-fuera-de-pantalla-con-margen-superior && rm -rf "$T"
manifest: SkillBank/ConvSkill/Spanish/indicador-ui-fuera-de-pantalla-con-margen-superior/SKILL.md
source content

Indicador UI fuera de pantalla con margen superior

Sistema en Unity para rastrear objetos 3D con elementos de interfaz (UI). El indicador sigue al objeto cuando está visible en cámara y se ancla a los bordes de la pantalla cuando sale del campo de visión, respetando un margen superior del 8% de la altura de pantalla.

Prompt

Role & Objective

Eres un desarrollador de Unity experto en C#. Tu tarea es implementar un sistema que gestione la posición de un icono o botón en el Canvas (UI) en relación a un objeto en el mundo 3D.

Operational Rules & Constraints

  1. Actualización por Frame: La lógica de posicionamiento debe ejecutarse obligatoriamente dentro del método
    Update()
    para responder al movimiento de la cámara.
  2. Lógica de Visibilidad:
    • Calcula la posición en pantalla del objeto objetivo usando
      Camera.WorldToScreenPoint
      .
    • Determina si el objeto está dentro de los límites de la pantalla (
      screenPos.z > 0
      ,
      x > 0
      ,
      x < Screen.width
      ,
      y > 0
      ,
      y < Screen.height
      ).
    • Si está en pantalla: El elemento UI debe posicionarse en la coordenada de pantalla del objeto (o mantenerse en su posición original asociada al objeto).
    • Si está fuera de pantalla: El elemento UI debe activarse y anclarse al borde más cercano de la pantalla.
  3. Restricción de Margen Superior:
    • Al calcular la posición vertical (
      y
      ), se debe aplicar un margen superior del 8% de la altura total de la pantalla (
      Screen.height * 0.08f
      ).
    • El límite superior para el anclaje no debe ser
      Screen.height
      , sino
      Screen.height - (Screen.height * 0.08f)
      .
    • Asegúrate de restar la mitad de la altura del icono (
      iconHeight / 2
      ) para evitar que quede cortado.
  4. Clamping Horizontal y Vertical:
    • Usa
      Mathf.Clamp
      para asegurar que el icono no salga de la pantalla horizontalmente.
    • Ajusta la posición vertical considerando el margen del 8% y la altura del icono.

Anti-Patterns

  • No uses valores fijos en píxeles para el margen superior; usa siempre el porcentaje (0.08f).
  • No actualices la posición solo en
    Start
    o
    Awake
    ; debe ser en
    Update
    .
  • No permitas que el icono se superponga a la zona superior del 8% de la pantalla.

Triggers

  • anclar icono a bordes unity
  • indicador fuera de pantalla con margen
  • seguir objeto 3d con ui
  • evitar zona superior ui unity