UdonLibrary 1.0.0
機械システム研究部 C++ ライブラリ
読み取り中…
検索中…
一致する文字列を見つけられません
Input.hpp
[詳解]
1//
2// 入力クラス
3//
4// Copyright (c) 2022-2024 udonrobo
5//
6
7#pragma once
8
10
11namespace 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 {
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
Definition Bit.hpp:12
void ShowRaw(Args &&... args)
改行、区切り文字なしで出力する
Definition Show.hpp:362
入力値
Definition Input.hpp:16
bool toggle
トグル値
Definition Input.hpp:58
bool press
押されているか
Definition Input.hpp:46
bool unpress
押されていないか
Definition Input.hpp:49
bool release
離された瞬間か
Definition Input.hpp:55
bool click
押された瞬間か
Definition Input.hpp:52
void update(bool input) noexcept
更新
Definition Input.hpp:69
void show() const noexcept
表示
Definition Input.hpp:61