Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
Tags
- ag 내일배움캠프
- 블렌더
- 붕괴 스타레일
- 붕괴스타레일
- 유니티
- 나만의 견해
- 뭐드라
- 게임 회사
- 셰이더
- spritelibrary
- 게임용어
- 프로그래밍
- 연습
- 내일배움캠프
- LookAt
- 취미
- til
- 트러블슈팅
- 코테
- 공부
- 스파르타내일배움캠프TIL
- 게임분석
- 스파르타내일배움캠프
- 원신
- 코딩
- spritemask2d
- 게임
- materialpropertyblock
- 까먹기전에메모
- 게임 개발
Archives
- Today
- Total
덴바의 노트
[유니티] 버튼 연타 방지 확장 메소드 구현 본문

오늘의 키워드
- UniRx
- 연타 방지
버튼 연속 클릭 방지 코드
public static IObservable<Unit> OnClickAsObservableWithThrottle(
this Button button, float intervalSeconds, Action onWaitAction = null)
{
var cooldownEnd = DateTimeOffset.MinValue;
return button.OnClickAsObservable()
.Do(_ => {
if (DateTimeOffset.UtcNow < cooldownEnd)
onWaitAction?.Invoke(); // 대기 중 액션 실행
})
.Where(_ => {
var now = DateTimeOffset.UtcNow;
if (now < cooldownEnd) return false; // 쿨다운 중 차단
cooldownEnd = now.AddSeconds(intervalSeconds);
return true;
}).AsUnitObservable();
}
'프로그래밍 노트' 카테고리의 다른 글
| [유니티] 3D FPS 게임 구현 1 - 이동 구현 (Locomotion) (0) | 2026.04.22 |
|---|---|
| [유니티] 3D FPS 게임 구현 0 - 에셋 준비 (1) | 2026.04.22 |
| [유니티] 컴파일링(Compiling)과 어셈블리 정의 (Assembly Definition) (0) | 2026.04.16 |
| 유니티 VirtualCamera가 Live 상태로 변하지 않는 문제 (0) | 2025.11.23 |
| 유니티 C#, C++ 그리고 Null (1) | 2025.06.30 |