Files
whdwo798 4dad9e5d5b 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>
2026-05-21 23:37:34 +09:00

81 lines
2.1 KiB
C#

using UnityEngine;
using System.Collections;
namespace VRSDK
{
public class VR_UIHighlight : VR_Highlight
{
#region INSPECTOR
[SerializeField] private Canvas canvas = null;
[SerializeField] private Transform grabbableMarker = null;
[SerializeField] private float scaleTime = 0.2f;
[SerializeField] private float radius = 0.2f;
#endregion
private Coroutine scaleCoroutine = null;
private void Update()
{
LookAtCamera();
if (CanHighlight())
{
if (!canvas.gameObject.activeInHierarchy)
canvas.gameObject.SetActive( true );
}
else
{
if (canvas.gameObject.activeInHierarchy)
canvas.gameObject.SetActive( false );
grabbableMarker.localScale = Vector3.one;
}
}
private void LookAtCamera()
{
canvas.transform.position = canvas.transform.parent.position + ( ( Camera.main.transform.position - transform.position ).normalized * radius );
}
public override void Highlight(VR_Controller controller)
{
ScaleTween( 1.2f );
}
public override void UnHighlight(VR_Controller controller)
{
ScaleTween( 1.0f );
}
private void ScaleTween(float scale)
{
if (scaleCoroutine != null)
StopCoroutine( scaleCoroutine );
scaleCoroutine = StartCoroutine( ScaleRoutine( scale ) );
}
private IEnumerator ScaleRoutine(float scale)
{
float currentTime = 0.0f;
while (currentTime <= scaleTime)
{
currentTime += Time.deltaTime;
grabbableMarker.transform.localScale = Vector3.Lerp( grabbableMarker.transform.localScale , Vector3.one * scale , currentTime / scaleTime );
yield return new WaitForEndOfFrame();
}
grabbableMarker.transform.localScale = Vector3.one * scale;
}
}
}