# hj-sdk **Repository Path**: duguangyan/hj-sdk ## Basic Information - **Project Name**: hj-sdk - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-19 - **Last Updated**: 2026-05-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ThreeSDK 一个轻量级的 Three.js 封装 SDK,提供简洁的 API 用于快速构建 3D Web 应用。 ## 特性 - 简洁易用的 API - 完整的 TypeScript 类型支持 - 支持 CommonJS / ES Module - 内置常用管理器(相机、渲染器、场景、控制器、动画) - 材质和几何体工厂 - 事件系统 - 截图功能 ## 安装 ```bash npm install ``` ## 开发 ```bash npm run dev ``` ## 构建 ```bash npm run build ``` ## 使用示例 ```typescript import { ThreeSDK } from 'three-sdk'; // 创建 SDK 实例 const sdk = new ThreeSDK({ container: '#container', antialias: true, backgroundColor: 0x1a1a2e, camera: { type: 'perspective', fov: 60, position: { x: 0, y: 2, z: 8 }, }, autoRender: true, }); // 添加方向光 sdk.addLight({ type: 'directional', color: 0xffffff, intensity: 1, position: { x: 5, y: 10, z: 7.5 }, }); // 创建控制器 sdk.createController({ type: 'orbit', enableDamping: true, dampingFactor: 0.05, }); // 创建几何体 sdk.createMesh({ type: 'box', params: { width: 2, height: 2, depth: 2 }, position: { x: 0, y: 0, z: 0 }, material: { type: 'meshStandard', color: 0x667eea, metalness: 0.5, roughness: 0.3, }, }, 'myCube'); // 添加动画 sdk.addAnimation((delta, elapsed) => { const cube = sdk.getObject('myCube'); if (cube) { cube.rotation.y = elapsed; } }); // 截图 const screenshot = sdk.screenshot(); // 销毁 sdk.dispose(); ``` ## API 文档 ### ThreeSDK 主类,用于创建和管理 3D 场景。 #### 构造函数 ```typescript new ThreeSDK(options: SDKOptions) ``` #### 选项 | 属性 | 类型 | 默认值 | 描述 | |------|------|--------|------| | container | HTMLElement \| string | 必需 | Canvas 容器 | | antialias | boolean | true | 抗锯齿 | | alpha | boolean | false | 透明背景 | | backgroundColor | number \| string | 0x000000 | 背景颜色 | | camera | CameraOptions | - | 相机配置 | | webgl | WebGLRendererParameters | - | WebGL 配置 | | autoRender | boolean | true | 自动渲染 | | renderFps | number | 60 | 渲染帧率 | ### 方法 - `getScene(): THREE.Scene` - 获取场景 - `getCamera(): THREE.Camera` - 获取相机 - `getRenderer(): THREE.WebGLRenderer` - 获取渲染器 - `getContainer(): HTMLElement` - 获取容器 - `createController(options?): OrbitControls` - 创建控制器 - `createMesh(options, name?): THREE.Mesh` - 创建几何体 - `addObject(object, name?): void` - 添加物体 - `removeObject(nameOrObject): void` - 移除物体 - `getObject(name): THREE.Object3D` - 获取物体 - `addLight(options): THREE.Light` - 添加光源 - `addAnimation(callback): void` - 添加动画 - `removeAnimation(callback): void` - 移除动画 - `screenshot(type?, quality?): string` - 截图 - `dispose(): void` - 销毁 ### 事件 ```typescript sdk.on('init', () => {}); sdk.on('render', () => {}); sdk.on('resize', (data) => {}); sdk.on('dispose', () => {}); sdk.on('error', (error) => {}); ``` ## License MIT