UdonLibrary
1.0.0
機械システム研究部 C++ ライブラリ
読み取り中…
検索中…
一致する文字列を見つけられません
Input.hpp
[詳解]
1
//
2
// 入力クラス
3
//
4
// Copyright (c) 2022-2024 udonrobo
5
//
6
7
#pragma once
8
9
#include <
Udon/Utility/Show.hpp
>
10
11
namespace
Udon
12
{
13
15
struct
Input
16
{
17
// │
18
// [input:true ] │ ┌─────────────┐ ┌─────────────┐ ┌──
19
// │ │ │ │ │ │
20
// [input:false] ┼────────────┘ └─────────────┘ └─────────────┘
21
// │
22
// ↓
23
// │
24
// [press:true ] │ ┌─────────────┐ ┌─────────────┐ ┌──
25
// │ │ │ │ │ │
26
// [press:false] ┼────────────┘ └─────────────┘ └─────────────┘
27
// │
28
// [unpress:true ] ┼────────────┐ ┌─────────────┐ ┌─────────────┐
29
// │ │ │ │ │ │
30
// [unpress:false] │ └─────────────┘ └─────────────┘ └──
31
// │
32
// [click:true ] │ ┌┐ ┌┐ ┌┐
33
// │ ││ ││ ││
34
// [click:false] ┼────────────┘└──────────────────────────┘└──────────────────────────┘└─
35
// │
36
// [release:true ] │ ┌┐ ┌┐
37
// │ ││ ││
38
// [release:false] ┼──────────────────────────┘└──────────────────────────┘└───────────────
39
// │
40
// [toggle:true ] │ ┌───────────────────────────┐ ┌──
41
// │ │ │ │
42
// [toggle:false] ┼────────────┘ └───────────────────────────┘
43
// │
44
46
bool
press
=
false
;
47
49
bool
unpress
=
true
;
50
52
bool
click
=
false
;
53
55
bool
release
=
false
;
56
58
bool
toggle
=
false
;
59
61
void
show
() const noexcept
62
{
63
Udon::ShowRaw
(
press
);
64
}
65
69
void
update
(
bool
input)
noexcept
70
{
71
press
= input;
72
73
unpress
= not input;
74
75
click
= not previous and input;
76
77
release
= previous and not input;
78
79
toggle
^=
click
;
80
81
previous = input;
82
}
83
84
private
:
86
bool
previous =
false
;
87
};
88
}
// namespace Udon
Show.hpp
Udon
Definition
Bit.hpp:12
Udon::ShowRaw
void ShowRaw(Args &&... args)
改行、区切り文字なしで出力する
Definition
Show.hpp:362
Udon::Input
入力値
Definition
Input.hpp:16
Udon::Input::toggle
bool toggle
トグル値
Definition
Input.hpp:58
Udon::Input::press
bool press
押されているか
Definition
Input.hpp:46
Udon::Input::unpress
bool unpress
押されていないか
Definition
Input.hpp:49
Udon::Input::release
bool release
離された瞬間か
Definition
Input.hpp:55
Udon::Input::click
bool click
押された瞬間か
Definition
Input.hpp:52
Udon::Input::update
void update(bool input) noexcept
更新
Definition
Input.hpp:69
Udon::Input::show
void show() const noexcept
表示
Definition
Input.hpp:61