Compare commits

..

2 Commits

Author SHA1 Message Date
6e6c8e00bd .. 2025-10-08 17:24:53 +09:00
4daac08062 fix: 차량 물리 엔진 및 맵 시스템 개선
## 주요 변경사항

### 🚗 차량 물리 시스템
- BodyVelocity/BodyGyro → AssemblyLinearVelocity로 전환
- LocalScript에서 작동하는 최신 물리 엔진 사용
- 차량 무게 150kg → 642kg 증가 (Density 0.7 → 3.0)
- Elasticity 0.5 → 0.2로 조정 (덜 튀도록)

### 🗺️ 맵 시스템 정리
- Workspace 대청소 (9개 불필요 오브젝트 제거)
- 복잡한 도시 도로 제거 → 간단한 레이싱 트랙
- 평평한 바닥 추가 (턱 문제 해결)
- 차량 8대 스타트 라인 재배치

### 📝 문서화
- CLAUDE.md에 LocalScript 물리 엔진 제약사항 추가
- AssemblyLinearVelocity 사용법 가이드 추가

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-08 17:13:33 +09:00
3 changed files with 58 additions and 0 deletions

View File

@@ -62,6 +62,63 @@ part.Parent = game.Workspace
---
## 🚨 중요 개발 노트 (반드시 숙지!)
### ❌ LocalScript 물리 엔진 제약사항
**문제**: LocalScript에서 BodyVelocity/BodyGyro를 생성하면 클라이언트에서만 보이고 실제 물리 엔진에 영향을 주지 못함
**증상**:
- Output 창에 "✅ BodyVelocity 생성" 메시지는 나오지만
- 실제로 `workspace.RaceCar1.Chassis:FindFirstChildOfClass("BodyVelocity")`는 nil 반환
- `bodyVelocity.Velocity` 설정해도 차량이 움직이지 않음
- 키 입력은 감지되고 속도 계산은 정상이지만 이동 없음
**원인**:
- LocalScript는 클라이언트 전용이므로 서버에 물리 오브젝트를 생성할 수 없음
- BodyVelocity/BodyGyro는 서버에서만 작동하는 물리 엔진 컴포넌트
**해결책**:
```lua
-- ❌ 작동하지 않음 (LocalScript)
local bodyVel = Instance.new("BodyVelocity")
bodyVel.Parent = chassis
bodyVel.Velocity = moveDirection -- 효과 없음!
-- ✅ 올바른 방법 (LocalScript)
chassis.AssemblyLinearVelocity = moveDirection -- 직접 설정
chassis.CFrame = chassis.CFrame * CFrame.Angles(0, rotation, 0) -- 회전
```
**추가 제약**:
- `SetNetworkOwner()` - LocalScript에서 호출 불가 (서버 전용 API)
- `BodyGyro`, `BodyPosition`, `BodyForce` 등 모든 Body* 계열 동일한 문제
### ✅ Roblox 최신 물리 엔진 권장 사항
**최신 방식**: AssemblyLinearVelocity/AssemblyAngularVelocity 직접 사용
- LocalScript/Script 모두에서 작동
- 더 빠르고 효율적
- Body* 계열보다 예측 가능
**참고 코드**:
```lua
-- 속도 설정
chassis.AssemblyLinearVelocity = chassis.CFrame.LookVector * speed
-- 회전
chassis.CFrame = chassis.CFrame * CFrame.Angles(0, math.rad(turnSpeed), 0)
-- 물리 속성 조정 (선택사항)
chassis.CustomPhysicalProperties = PhysicalProperties.new(
0.7, -- Density
0.3, -- Friction
0.5 -- Elasticity
)
```
---
# 📋 프로젝트 개요
- **플랫폼**: Roblox Studio

Binary file not shown.

1
run_claude.bat Normal file
View File

@@ -0,0 +1 @@
claude --dangerously-skip-permissions