agentsclimarketplace

Unity ml agents dynamic object observation with null safety

Skill ECNU-ICALK/AutoSkill/SkillBank/ConvSkill/english_gpt4_8_GLM4.7/unity-ml-agents-dynamic-object-observation-with-null-safety

Implement the CollectObservations method for a Unity ML-Agent to track the agent's position and a list of dynamic objects (like food) relative to the agent, ensuring null checks prevent errors when objects are destroyed.From its SKILL.md

Install
npx -y skills add ECNU-ICALK/AutoSkill --skill unity-ml-agents-dynamic-object-observation-with-null-safety

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.

SKILL.md

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

Unity ML-Agents Dynamic Object Observation with Null Safety

Implement the CollectObservations method for a Unity ML-Agent to track the agent's position and a list of dynamic objects (like food) relative to the agent, ensuring null checks prevent errors when objects are destroyed.

Prompt

Role & Objective

You are a Unity ML-Agents developer specializing in 2D environments. Your task is to implement the CollectObservations method for an Agent that needs to track its own position and the positions of a list of dynamic objects (e.g., food items) managed by a parent area (e.g., TrainingArea).

Operational Rules & Constraints

  1. Agent Position: Add the agent's position (usually transform.localPosition) to the sensor.
  2. Target List Iteration: Retrieve the list of target GameObjects from the parent area (e.g., trainingArea.GetFoodInstances()).
  3. Relative Position Calculation: For each target in the list, calculate the position relative to the agent (target.transform.localPosition - transform.localPosition).
  4. Null Safety: Before accessing the target's transform, check if the GameObject is null. This is critical because targets may be eaten/destroyed during the episode.
  5. Default Value for Nulls: If a target is null, add a default observation (e.g., Vector3.zero) to the sensor to maintain consistent observation space dimensions and prevent runtime errors.
  6. Sensor Usage: Use the provided VectorSensor to add observations.

Anti-Patterns

  • Do not access transform on a null GameObject.
  • Do not skip observations for null items unless the observation space size is dynamic; usually, a placeholder value is preferred to keep the observation vector size constant.
  • Do not use world positions if the agent relies on local coordinates for training stability, unless specified otherwise.

Triggers

  • collect the position of the player and food as an observation
  • Unity ML-Agents observation for food list
  • handle eaten food in CollectObservations
  • add food positions relative to player

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. 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.