feat(BT12-Dev): RangeTier 5단계 + aspect fallback (PD 사정거리 영역)
This commit is contained in:
parent
6a160d5f5f
commit
e7e120feef
|
|
@ -44,3 +44,4 @@ MonoBehaviour:
|
||||||
IFrameDuration: 0
|
IFrameDuration: 0
|
||||||
DebuffStackLimit: 0
|
DebuffStackLimit: 0
|
||||||
FireProbability: 1
|
FireProbability: 1
|
||||||
|
Range: 2
|
||||||
|
|
|
||||||
|
|
@ -45,3 +45,4 @@ MonoBehaviour:
|
||||||
IFrameDuration: 0
|
IFrameDuration: 0
|
||||||
DebuffStackLimit: 0
|
DebuffStackLimit: 0
|
||||||
FireProbability: 1
|
FireProbability: 1
|
||||||
|
Range: 3
|
||||||
|
|
|
||||||
|
|
@ -44,3 +44,4 @@ MonoBehaviour:
|
||||||
IFrameDuration: 0
|
IFrameDuration: 0
|
||||||
DebuffStackLimit: 0
|
DebuffStackLimit: 0
|
||||||
FireProbability: 1
|
FireProbability: 1
|
||||||
|
Range: 2
|
||||||
|
|
|
||||||
|
|
@ -45,3 +45,4 @@ MonoBehaviour:
|
||||||
IFrameDuration: 0
|
IFrameDuration: 0
|
||||||
DebuffStackLimit: 5
|
DebuffStackLimit: 5
|
||||||
FireProbability: 1
|
FireProbability: 1
|
||||||
|
Range: 1
|
||||||
|
|
|
||||||
|
|
@ -44,3 +44,4 @@ MonoBehaviour:
|
||||||
IFrameDuration: 0
|
IFrameDuration: 0
|
||||||
DebuffStackLimit: 0
|
DebuffStackLimit: 0
|
||||||
FireProbability: 1
|
FireProbability: 1
|
||||||
|
Range: 3
|
||||||
|
|
|
||||||
|
|
@ -44,3 +44,4 @@ MonoBehaviour:
|
||||||
IFrameDuration: 0
|
IFrameDuration: 0
|
||||||
DebuffStackLimit: 0
|
DebuffStackLimit: 0
|
||||||
FireProbability: 1
|
FireProbability: 1
|
||||||
|
Range: 4
|
||||||
|
|
|
||||||
|
|
@ -79,8 +79,14 @@ namespace EerieVillage.Skills
|
||||||
[Tooltip("확률 판정 전용 (F 카테고리). 발동 확률 0~1")]
|
[Tooltip("확률 판정 전용 (F 카테고리). 발동 확률 0~1")]
|
||||||
[Range(0f, 1f)]
|
[Range(0f, 1f)]
|
||||||
public float FireProbability = 1.0f;
|
public float FireProbability = 1.0f;
|
||||||
|
|
||||||
|
/// <summary>BT12-Dev 2026-05-10 PD — 사정거리 5단계 (Camera width 배수)</summary>
|
||||||
|
[Tooltip("사정거리 5단계 — Camera 가로 배수 (Short 0.2·MediumShort 0.5·Medium 0.667·MediumLong 1.0·Long 1.5)")]
|
||||||
|
public RangeTier Range = RangeTier.Medium;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public enum RangeTier { Short, MediumShort, Medium, MediumLong, Long }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 액티브 스킬 카테고리 (A~F). BT12-Dev v1 §2-2 정합.
|
/// 액티브 스킬 카테고리 (A~F). BT12-Dev v1 §2-2 정합.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
||||||
|
|
@ -43,18 +43,17 @@ namespace EerieVillage.Skills.Effectors
|
||||||
_spawnPosition = transform.position;
|
_spawnPosition = transform.position;
|
||||||
_spawnTime = Time.time;
|
_spawnTime = Time.time;
|
||||||
|
|
||||||
// 최대 거리 = Camera 영역 영역 영역 × 1.5 (PD #1 명시)
|
// BT12-Dev 2026-05-10 PD — 사정거리 5단계 (Camera 가로 배수)
|
||||||
// Camera ortho size 3.5·aspect 16:9 → height 7·width ~12.44 → maxRange ~18.66 unit
|
float camWidth = 12.44f; // fallback (ortho size 3.5·16:9)
|
||||||
var cam = Camera.main;
|
var cam = Camera.main;
|
||||||
if (cam != null && cam.orthographic)
|
if (cam != null && cam.orthographic)
|
||||||
{
|
{
|
||||||
float camWidth = cam.orthographicSize * 2f * cam.aspect;
|
float aspect = (cam.aspect > 0.01f) ? cam.aspect : (16f / 9f);
|
||||||
_maxRange = camWidth * 1.5f;
|
camWidth = cam.orthographicSize * 2f * aspect;
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_maxRange = 20f; // fallback
|
|
||||||
}
|
}
|
||||||
|
float[] mults = { 0.2f, 0.5f, 0.667f, 1.0f, 1.5f };
|
||||||
|
int idx = Mathf.Clamp((int)_data.Range, 0, mults.Length - 1);
|
||||||
|
_maxRange = camWidth * mults[idx];
|
||||||
|
|
||||||
// Phase 2-B: 풀링 미도입 — Invoke 기반 자동 소멸 (거리 제한 영역 영역 영역 영역 영역 안전망)
|
// Phase 2-B: 풀링 미도입 — Invoke 기반 자동 소멸 (거리 제한 영역 영역 영역 영역 영역 안전망)
|
||||||
Invoke(nameof(SelfDestruct), _lifetime);
|
Invoke(nameof(SelfDestruct), _lifetime);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue