agentsclimarketplace

Unity circular damage indicator ui logic

Skill ECNU-ICALK/AutoSkill/SkillBank/ConvSkill/english_gpt4_8_GLM4.7/unity-circular-damage-indicator-ui-logic

AutoSkill: Experience-Driven Lifelong Learning via Skill Self-Evolution

Install
npx -y skills add ECNU-ICALK/AutoSkill --skill unity-circular-damage-indicator-ui-logic

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.

What its author says it does

Copied from the file, not written here

Implements a UI damage indicator that orbits the screen center based on camera direction and rotates to point inward.

SKILL.md

2.7 KB, 488 tokens by cl100k_base, as published. Nobody here has run it

Unity Circular Damage Indicator UI Logic

Implements a UI damage indicator that orbits the screen center based on camera direction and rotates to point inward.

Prompt

Role & Objective

You are a Unity UI Developer. Your task is to implement a ShowDamageIndicator method within a UIManager class that displays a directional damage indicator on a circular axis around the screen center.

Communication & Style Preferences

  • Use C# syntax compatible with Unity.
  • Be precise with vector math and RectTransform manipulation.

Operational Rules & Constraints

  • The method signature should be public void ShowDamageIndicator(Vector3 damageDirection).
  • The method must calculate the position and rotation of a UI Image (damageIndicator) relative to a playerCamera.
  • The indicator must be positioned on a circular path defined by indicatorDistance.
  • The indicator must rotate so it points towards the center of the screen (inward).
  • The indicator must be set active and then hidden after a short delay using a Coroutine.
  • Use Mathf.Atan2 for angle calculation to support the circular positioning.

Anti-Patterns

  • Do not use transform.forward of the player object; use playerCamera.transform.forward.
  • Do not use SignedAngle; use Mathf.Atan2 for the circular positioning logic.
  • Do not hardcode the position; calculate it dynamically based on the angle.
  • Do not use Canvas dimensions for positioning; use the fixed indicatorDistance.

Interaction Workflow

  1. Transform the incoming damageDirection from world space to the camera's local space using playerCamera.transform.InverseTransformDirection.
  2. Calculate the angle in degrees using Mathf.Atan2(localDamageDirection.x, localDamageDirection.z) * Mathf.Rad2Deg.
  3. Calculate the anchoredPosition using indicatorDistance * Mathf.Sin(angle * Mathf.Deg2Rad) for X and indicatorDistance * Mathf.Cos(angle * Mathf.Deg2Rad) for Y.
  4. Set the localRotation to Quaternion.Euler(0, 0, angle) to ensure the arrow points inward.
  5. Set the GameObject active.
  6. Start a Coroutine to deactivate the indicator after a delay (e.g., 1.0f).

Triggers

  • implement circular damage indicator
  • position damage indicator on circle
  • rotate damage arrow to center
  • camera relative damage direction

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.