Unity client features: - WebSocket connection via NativeWebSocket - 2.5D agent visuals with programmatic placeholder sprites - Billboard system for sprites and UI elements - Floating UI panels (name, HP, energy bars) - Speech bubble system with pop-in animation - RTS-style camera controller (WASD + scroll zoom) - Editor tools for prefab creation and scene setup Scripts: - NetworkManager: WebSocket singleton - GameManager: Agent spawning and event handling - AgentVisual: 2.5D sprite and UI creation - Billboard: Camera-facing behavior - SpeechBubble: Animated dialogue display - CameraController: RTS camera with UI input detection - UIManager: HUD and command input 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
177 lines
4.9 KiB
Plaintext
177 lines
4.9 KiB
Plaintext
%YAML 1.1
|
|
%TAG !u! tag:unity3d.com,2011:
|
|
--- !u!1 &1907814268248440061
|
|
GameObject:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
serializedVersion: 6
|
|
m_Component:
|
|
- component: {fileID: 5646202202797632544}
|
|
- component: {fileID: 5061177960749080548}
|
|
m_Layer: 0
|
|
m_Name: Sprite
|
|
m_TagString: Untagged
|
|
m_Icon: {fileID: 0}
|
|
m_NavMeshLayer: 0
|
|
m_StaticEditorFlags: 0
|
|
m_IsActive: 1
|
|
--- !u!4 &5646202202797632544
|
|
Transform:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 1907814268248440061}
|
|
serializedVersion: 2
|
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
m_ConstrainProportionsScale: 0
|
|
m_Children: []
|
|
m_Father: {fileID: 9065057861111836059}
|
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
--- !u!212 &5061177960749080548
|
|
SpriteRenderer:
|
|
serializedVersion: 2
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 1907814268248440061}
|
|
m_Enabled: 1
|
|
m_CastShadows: 0
|
|
m_ReceiveShadows: 0
|
|
m_DynamicOccludee: 1
|
|
m_StaticShadowCaster: 0
|
|
m_MotionVectors: 1
|
|
m_LightProbeUsage: 1
|
|
m_ReflectionProbeUsage: 1
|
|
m_RayTracingMode: 0
|
|
m_RayTraceProcedural: 0
|
|
m_RayTracingAccelStructBuildFlagsOverride: 0
|
|
m_RayTracingAccelStructBuildFlags: 1
|
|
m_SmallMeshCulling: 1
|
|
m_ForceMeshLod: -1
|
|
m_MeshLodSelectionBias: 0
|
|
m_RenderingLayerMask: 1
|
|
m_RendererPriority: 0
|
|
m_Materials:
|
|
- {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
|
|
m_StaticBatchInfo:
|
|
firstSubMesh: 0
|
|
subMeshCount: 0
|
|
m_StaticBatchRoot: {fileID: 0}
|
|
m_ProbeAnchor: {fileID: 0}
|
|
m_LightProbeVolumeOverride: {fileID: 0}
|
|
m_ScaleInLightmap: 1
|
|
m_ReceiveGI: 1
|
|
m_PreserveUVs: 0
|
|
m_IgnoreNormalsForChartDetection: 0
|
|
m_ImportantGI: 0
|
|
m_StitchLightmapSeams: 1
|
|
m_SelectedEditorRenderState: 0
|
|
m_MinimumChartSize: 4
|
|
m_AutoUVMaxDistance: 0.5
|
|
m_AutoUVMaxAngle: 89
|
|
m_LightmapParameters: {fileID: 0}
|
|
m_GlobalIlluminationMeshLod: 0
|
|
m_SortingLayerID: 0
|
|
m_SortingLayer: 0
|
|
m_SortingOrder: 0
|
|
m_MaskInteraction: 0
|
|
m_Sprite: {fileID: 0}
|
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
|
m_FlipX: 0
|
|
m_FlipY: 0
|
|
m_DrawMode: 0
|
|
m_Size: {x: 1, y: 1}
|
|
m_AdaptiveModeThreshold: 0.5
|
|
m_SpriteTileMode: 0
|
|
m_WasSpriteAssigned: 0
|
|
m_SpriteSortPoint: 0
|
|
--- !u!1 &3706388644011989616
|
|
GameObject:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
serializedVersion: 6
|
|
m_Component:
|
|
- component: {fileID: 9065057861111836059}
|
|
- component: {fileID: 5704205502650767077}
|
|
- component: {fileID: 4731420257141751864}
|
|
m_Layer: 0
|
|
m_Name: AgentPrefab
|
|
m_TagString: Untagged
|
|
m_Icon: {fileID: 0}
|
|
m_NavMeshLayer: 0
|
|
m_StaticEditorFlags: 0
|
|
m_IsActive: 1
|
|
--- !u!4 &9065057861111836059
|
|
Transform:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 3706388644011989616}
|
|
serializedVersion: 2
|
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
|
m_LocalPosition: {x: 0.35356, y: 0.24749, z: 0.35356}
|
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
m_ConstrainProportionsScale: 0
|
|
m_Children:
|
|
- {fileID: 5646202202797632544}
|
|
m_Father: {fileID: 0}
|
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
--- !u!136 &5704205502650767077
|
|
CapsuleCollider:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 3706388644011989616}
|
|
m_Material: {fileID: 0}
|
|
m_IncludeLayers:
|
|
serializedVersion: 2
|
|
m_Bits: 0
|
|
m_ExcludeLayers:
|
|
serializedVersion: 2
|
|
m_Bits: 0
|
|
m_LayerOverridePriority: 0
|
|
m_IsTrigger: 0
|
|
m_ProvidesContacts: 0
|
|
m_Enabled: 1
|
|
serializedVersion: 2
|
|
m_Radius: 0.5
|
|
m_Height: 2
|
|
m_Direction: 1
|
|
m_Center: {x: 0, y: 0, z: 0}
|
|
--- !u!114 &4731420257141751864
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 3706388644011989616}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: d8a016bdb4b93424da387c520b59cbfb, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier: Assembly-CSharp::TheIsland.Visual.AgentVisual
|
|
characterSprite: {fileID: 0}
|
|
spriteColor: {r: 1, g: 1, b: 1, a: 1}
|
|
spriteScale: 2
|
|
sortingOrder: 10
|
|
placeholderBodyColor: {r: 0.3, g: 0.6, b: 0.9, a: 1}
|
|
placeholderOutlineColor: {r: 0.2, g: 0.4, b: 0.7, a: 1}
|
|
uiOffset: {x: 0, y: 2.2, z: 0}
|
|
uiScale: 0.008
|
|
speechDuration: 5
|
|
speechOffset: {x: 0, y: 3.5, z: 0}
|
|
hpHighColor: {r: 0.3, g: 0.9, b: 0.3, a: 1}
|
|
hpLowColor: {r: 0.9, g: 0.3, b: 0.3, a: 1}
|
|
energyHighColor: {r: 1, g: 0.8, b: 0.2, a: 1}
|
|
energyLowColor: {r: 1, g: 0.5, b: 0.1, a: 1}
|