feat: SongCreator 씬 완성 — Beat Sage URL 지원, info.dat 메타데이터 자동 추출
- BeatSageUploader: audio_url 지원(UploadFromUrl), PollAndDownload 공통화, ZIP 500 오류 3회 재시도 - BeatSageConverter: info.dat 파싱(SongMetadata), BPM 자동 감지 → 노트 타이밍 변환에 적용 - SongCreatorManager: title/BPM 필수 입력 제거, 난이도 4개 자동 선택, GenerateFlowFromUrl 버그 수정 - NasPublisher: audioPath null 허용(URL 흐름에서 로컬 파일 없는 경우 스킵) - .gitignore/.gitattributes 초기 설정 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace DamageSystem
|
||||
{
|
||||
/// <summary>
|
||||
/// This component report all limb damage to the the AI
|
||||
/// </summary>
|
||||
public class DamageableLimb : Damageable
|
||||
{
|
||||
[SerializeField] private float damageMultiplier = 1.0f;
|
||||
|
||||
private DamageableManager owner = null;
|
||||
|
||||
|
||||
//public Rigidbody RB { get { return rb; } }
|
||||
public DamageableManager Owner { get { return owner; } }
|
||||
|
||||
|
||||
public void SetOwner(DamageableManager owner)
|
||||
{
|
||||
this.owner = owner;
|
||||
}
|
||||
|
||||
public override void DoDamage(DamageInfo info)
|
||||
{
|
||||
info.dmg *= damageMultiplier;
|
||||
//owner.DoDamage(info, this);
|
||||
}
|
||||
|
||||
private void ProcessHit(Rigidbody rb)
|
||||
{
|
||||
DamageInfo info = new DamageInfo();
|
||||
info.damageType = DamageType.Physical;
|
||||
info.hitDir = rb.linearVelocity.normalized;
|
||||
info.dmg = rb.linearVelocity.magnitude * damageMultiplier;
|
||||
info.hitForce = rb.linearVelocity.magnitude;
|
||||
|
||||
DoDamage(info);
|
||||
|
||||
}
|
||||
|
||||
private void OnCollisionEnter(Collision other)
|
||||
{
|
||||
//in this way we can respond to hits from objects and apply damage,
|
||||
//like the player throwing a box to a enemy
|
||||
if (other.rigidbody != null)
|
||||
{
|
||||
ProcessHit( other.rigidbody );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user