Token导航 LogoToken导航TokenDH.com
前端设计需要联网github未标认证来源可访问许可证需确认审计通过

unity-csharp-scriptingUnity csharp scripting 命令行

Agent Skill

unity-csharp-scripting 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

436

周安装

18

GitHub Stars

33

下载量

143
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:unity-csharp-scripting(Unity csharp scripting 命令行)
来源仓库:https://github.com/josiahsiegel/claude-plugin-marketplace
仓库路径:skills/unity-csharp-scripting
安装命令:
npx skills add https://github.com/josiahsiegel/claude-plugin-marketplace --skill unity-csharp-scripting
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/josiahsiegel/claude-plugin-marketplace --skill unity-csharp-scripting

简介

用于处理 Unity C# 脚本相关的 GitHub 仓库、Issue、Pull Request 和代码协作信息。

  • 适合在 Codex、Claude、Cursor、Gemini CLI 中围绕代码变更或协作事项进行整理时使用。
  • 通过 npx skills add 命令从 GitHub 仓库安装并使用。
  • 安装前建议确认权限范围和维护状态,避免触发不必要的联网或文件操作。
  • unity-csharp-scripting 属于前端设计类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

Unity C# Scripting Patterns

Overview

Core C# scripting reference for Unity development. Covers MonoBehaviour lifecycle, physics and collision APIs, animation scripting, audio, navigation, common design patterns, serialization, and ECS/DOTS coding patterns.

MonoBehaviour Lifecycle

Execution Order

Awake() -> OnEnable() -> Start() -> FixedUpdate() -> Update() -> LateUpdate() -> OnDisable() -> OnDestroy()
MethodWhen CalledUse For
Awake()Once, when object instantiates (before Start)Self-initialization, caching references
OnEnable()Each time object becomes activeSubscribe to events, reset state
Start()Once, before first Update (after all Awake)Cross-object initialization
FixedUpdate()Fixed timestep (default 0.02s)Physics, Rigidbody movement
Update()Every frameInput, non-physics logic
LateUpdate()After all Update callsCamera follow, post-movement adjustments
OnDisable()When object deactivatesUnsubscribe events, save state
OnDestroy()When object is destroyedFinal cleanup, resource release

Key Rules

  • Awake runs even on disabled components (but not disabled GameObjects)
  • Never rely on Awake/Start order between scripts -- use [DefaultExecutionOrder(N)] or Script Execution Order settings
  • Use OnValidate() for editor-time validation of serialized fields

Coroutines and Async

Coroutines

IEnumerator SpawnWaves(int count, float delay)
{
    for (int i = 0; i < count; i++)
    {
        SpawnEnemy();
        yield return new WaitForSeconds(delay);
    }
}
// Start: Coroutine handle = StartCoroutine(SpawnWaves(5, 1f));
// Stop: StopCoroutine(handle); or StopAllCoroutines();
Yield InstructionBehavior
yield return nullWait one frame
yield return new WaitForSeconds(t)Wait t seconds (affected by timeScale)
yield return new WaitForSecondsRealtime(t)Unscaled time
yield return new WaitForFixedUpdate()Wait for next FixedUpdate
yield return new WaitForEndOfFrame()After rendering
yield return new WaitUntil(() => condition)Wait until predicate is true
yield return StartCoroutine(other)Wait for nested coroutine

Async/Await (Unity 6+ / UniTask)

For Unity 2023+/Unity 6, Awaitable is built-in. For older versions, use UniTask.

async Awaitable LoadLevelAsync(string sceneName)
{
    await Awaitable.WaitForSecondsAsync(1f);
    var op = SceneManager.LoadSceneAsync(sceneName);
    while (!op.isDone)
    {
        progressBar.value = op.progress;
        await Awaitable.NextFrameAsync();
    }
}

Events and Delegates

Event Pattern (Recommended)

// Publisher
public class Health : MonoBehaviour
{
    public event System.Action<float> OnDamaged;  // event keyword prevents external invocation
    public event System.Action OnDeath;

    public void TakeDamage(float amount)
    {
        currentHealth -= amount;
        OnDamaged?.Invoke(amount);
        if (currentHealth <= 0) OnDeath?.Invoke();
    }
}

// Subscriber
void OnEnable() => health.OnDamaged += HandleDamage;
void OnDisable() => health.OnDamaged -= HandleDamage;
void HandleDamage(float amount) => /* react */;

ScriptableObject Event Channels

Decouple systems without direct references. Create GameEvent as a ScriptableObject asset, invoke from publishers, and listen from subscribers via GameEventListener MonoBehaviours. See references/design-patterns.md for full implementation.

Physics API Quick Reference

Rigidbody Movement (3D)

TaskMethodWhere
Continuous forcerb.AddForce(dir * force)FixedUpdate
Instant impulserb.AddForce(dir * force, ForceMode.Impulse)FixedUpdate
Direct velocityrb.linearVelocity = dir * speedFixedUpdate
Kinematic moverb.MovePosition(target)FixedUpdate
Rotationrb.MoveRotation(targetRot)FixedUpdate

Note: In Unity 6, Rigidbody.velocity is renamed to Rigidbody.linearVelocity.

Raycasting

if (Physics.Raycast(origin, direction, out RaycastHit hit, maxDistance, layerMask))
{
    Debug.Log($"Hit {hit.collider.name} at {hit.point}");
}
// Use Physics.RaycastAll or Physics.RaycastNonAlloc for multiple hits
// 2D: Physics2D.Raycast, Physics2D.OverlapCircle, etc.

Collision vs Trigger

CallbackRequiresUse For
OnCollisionEnter/Stay/ExitBoth have colliders, at least one Rigidbody, isTrigger=falsePhysical impacts
OnTriggerEnter/Stay/ExitOne collider has isTrigger=true, at least one RigidbodyZones, pickups, detection

Always use CompareTag("Enemy") instead of other.tag == "Enemy" (avoids GC allocation).

Animation Scripting

[RequireComponent(typeof(Animator))]
public class CharacterAnimation : MonoBehaviour
{
    static readonly int SpeedHash = Animator.StringToHash("Speed");
    static readonly int JumpTrigger = Animator.StringToHash("Jump");
    Animator _anim;

    void Awake() => _anim = GetComponent<Animator>();
    void Update()
    {
        _anim.SetFloat(SpeedHash, moveSpeed);
        if (jumped) _anim.SetTrigger(JumpTrigger);
    }
}

Cache Animator.StringToHash results as static readonly fields to avoid per-frame hashing. Use Animation Events for gameplay-timed callbacks (footsteps, hit frames). For IK, implement OnAnimatorIK(int layerIndex) with SetIKPosition/Rotation/Weight.

Audio Quick Reference

[RequireComponent(typeof(AudioSource))]
public class SFXPlayer : MonoBehaviour
{
    [SerializeField] AudioClip[] clips;
    AudioSource _source;
    void Awake() => _source = GetComponent<AudioSource>();
    public void PlayRandom() => _source.PlayOneShot(clips[Random.Range(0, clips.Length)]);
}

Use AudioSource.PlayOneShot() for overlapping SFX. Use AudioMixer with exposed parameters for volume control. Use snapshots for state transitions (combat vs. exploration).

Serialization

TypeSerializedNotes
public fieldsYesVisible in Inspector
[SerializeField] privateYesPreferred -- maintains encapsulation
[HideInInspector] publicYes, hiddenSerialized but not shown
[NonSerialized] publicNoOpt-out of serialization
PropertiesNoNever serialized by Unity
DictionariesNoUse serialized list + rebuild, or Odin/SerializedDictionary
InterfacesNoUse abstract ScriptableObject or SerializeReference

Use [SerializeReference] for polymorphic serialization of interfaces and abstract types.

Common Design Patterns

PatternWhen to UseApproach
SingletonGlobal managers (Audio, GameState)ScriptableObject-based or lazy MonoBehaviour
ObserverDecoupled communicationC# events or SO event channels
CommandInput/undo systemsCommand interface + history stack
State MachineAI, player statesEnum + switch, or class-based states
Object PoolBullets, particles, enemiesQueue with pre-instantiation
Service LocatorTestable global accessStatic registry with interface keys

For detailed implementations and code examples, see references/design-patterns.md.

ECS/DOTS Quick Reference

ConceptRole
EntityLightweight ID (no MonoBehaviour)
IComponentDataPure data struct on entities
SystemBase / ISystemLogic operating on component queries
EntityQueryFilter entities by component sets
Jobs (IJobEntity)Multithreaded systems
Burst CompilerSIMD-optimized native code

For ECS architecture patterns and migration guidance, see references/design-patterns.md.

Additional Resources

Reference Files

  • references/design-patterns.md -- Full implementations of singleton, observer, command, state machine, object pool, service locator, and ECS patterns
  • references/physics-animation-audio.md -- Detailed physics setup (2D and 3D), advanced animation (blend trees, IK, root motion, Animation Rigging), and audio architecture

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

35.82%
按下载量换算51

Claude

29.77%
按下载量换算43

Cursor

20.76%
按下载量换算30

Gemini CLI

9.17%
按下载量换算13

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills