InputObject
*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。
インプットオブジェクト は、マウスの移動、タッチ、キープレスなどの単一ユーザーの入力を表します。インプットが開始すると作成されます。
このオブジェクトのプロパティは、UserInputType によって変化します。それぞれの入力種類は、その UserInputState にさまざまな変更を受けます。入力の期間中、入力をさらに説明する他のプロパティが変更される可能性があります(例: Position および Delta )。キーボードとゲームパッドのボタン押しには、KeyCode プロパティセットがありま設定する。
入力の開始時に作成された同じオブジェクトは、入力が終了するまで同じままであり、更新されます。結果として、ユーザーが入力を変更すると、Changed イベントを使用してオブジェクトの変更を追跡できます。これらのオブジェクトをアクティブな入力トラックのリストに配置し、UserInputService.InputBegan のようなイベントによって作成後のオブジェクトと対話することもできます。これは主にタッチイベントに有用で、各タッチポイントには別の入力オブジェクトがあります。
参照してください:
- ContextActionService , がインプットオブジェクトを bound アクションハンドリング機能にパス
- UserInputService , イベントと機能の多くが InputObject を使用する
- GuiObject , ユーザーの入力に関連するイベントを使用する InputObject
コードサンプル
次の例では、タイプに応じて InputBegan からユーザーの入力を処理する多くの使用例の 1つを示しています。
-- インプットビギンイベントを使用するには、ユーザー輸入サービスサービスを使用する必要があります
local UserInputService = game:GetService("UserInputService")
-- さまざまな種類のユーザー入力に対する複数の使用ケースを提供するサンプル機能
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if input.UserInputType == Enum.UserInputType.Keyboard then
print("A key is being pushed down! Key:", input.KeyCode)
elseif input.UserInputType == Enum.UserInputType.MouseButton1 then
print("The left mouse button has been pressed down at", input.Position)
elseif input.UserInputType == Enum.UserInputType.MouseButton2 then
print("The right mouse button has been pressed down at", input.Position)
elseif input.UserInputType == Enum.UserInputType.Touch then
print("A touchscreen input has started at", input.Position)
elseif input.UserInputType == Enum.UserInputType.Gamepad1 then
print("A button is being pressed on a gamepad! Button:", input.KeyCode)
end
if gameProcessed then
print("The game engine internally observed this input!")
else
print("The game engine did not internally observe this input!")
end
end)
概要
プロパティ
マウス/ジョイスティック移動の間のデルタを説明する Vector3。
使用された入力の種類を説明する Enum を含みます。
この入力の位置値を説明します。
入力が実行されている状態を説明し、UserInputType に基づいて特定のフローに従って行われます。
実行中の入力の種類 (マウス、キーボード、ゲームパッド、タッチなど) を説明します。
方法
プロパティ
Delta
A Vector3 マウス/ジョイスティック移動の間のデルタ (変更) を説明する。
これは、入力の position と一緒に使用すると、カスタム移動またはカメラスクリプトを作成しているときなど、ユーザーのマウス/ジョイスティックの位置と動作を追跡するのに便利です。Object.Changed イベントまたは UserInputService.InputChanged および GuiObject.InputChanged などのイベントを介してユーザーが入力を変更するときに、トラッキング輸入オブジェクトの変更を考慮します。
左クリックと右クリックに対応する (左クリック)と (右クリック)は、 (マウス入力が終了するときを除き)、 または が更新されることはありません。マウス入力の更新デルタを取得するには、代わりに InputObject コールバックから、または InputChanged から呼び出して、GetMouseDelta() を参照する必要があります。しかし、タッチ入力に対応する InputObjects は、ライフタイム中にすべてのフレームでデルタと位置が更新されます。
参照してください:
コードサンプル
この例では、プレイヤーの FieldOfView() と MouseDeltaSensitivity() が減少する binoculars スクリプトを作成します。プレイヤーが MouseEnabled() を左クリックしたとき。スクリプトはまた、プレイヤーの Camera マウスクリックの世界位置に向かって Vector3 を指します。
プレイヤーが再びマウスクリックをしたとき、プレイヤーのカメラは、プレイヤーがスクリプトでズームした前と同じ視野と Enum.CameraType を持つカスタム CFrame() に戻ります。
プレイヤーが望遠鏡を使用している間、スクリプトはプレイヤーのマウスを画面の中央にロックするように設定し、プレイヤーの MouseBehavior() をロックセンターに設定します。プレイヤーがマウスを移動すると、プレイヤーのカメラが InputObject.Delta 属性によって移動し、マウスの InputChanged() 画面位置の変更を指示する Vector2 を示します。
この例が期待通りに機能するには、LocalScript に配置する必要があります。
local UserInputService = game:GetService("UserInputService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.CharacterAdded:Wait()
local head = character:WaitForChild("Head", false)
local mouse = player:GetMouse()
local zoomed = false
local camera = game.Workspace.CurrentCamera
local target = nil
local originalProperties = {
FieldOfView = nil,
_CFrame = nil,
MouseBehavior = nil,
MouseDeltaSensitivity = nil,
}
local AngleX, TargetAngleX = 0, 0
local AngleY, TargetAngleY = 0, 0
-- ズームする前にカメラを CFrame と FieldOfView に戻す
local function ResetCamera()
target = nil
camera.CameraType = Enum.CameraType.Custom
camera.CFrame = originalProperties._CFrame
camera.FieldOfView = originalProperties.FieldOfView
UserInputService.MouseBehavior = originalProperties.MouseBehavior
UserInputService.MouseDeltaSensitivity = originalProperties.MouseDeltaSensitivity
end
local function ZoomCamera()
-- スクリプトでカメラを変更できるようにする
camera.CameraType = Enum.CameraType.Scriptable
-- ズーム前にカメラプロパティを保存する
originalProperties._CFrame = camera.CFrame
originalProperties.FieldOfView = camera.FieldOfView
originalProperties.MouseBehavior = UserInputService.MouseBehavior
originalProperties.MouseDeltaSensitivity = UserInputService.MouseDeltaSensitivity
-- カメラをズームする
target = mouse.Hit.Position
local eyesight = head.Position
camera.CFrame = CFrame.new(eyesight, target)
camera.Focus = CFrame.new(target)
camera.FieldOfView = 10
-- マウスをロックして減速させる
UserInputService.MouseBehavior = Enum.MouseBehavior.LockCenter
UserInputService.MouseDeltaSensitivity = 1
-- ズーム角をリセット
AngleX, TargetAngleX = 0, 0
AngleY, TargetAngleY = 0, 0
end
-- カメラズーム/ズーム解除を切り替え
local function MouseClick()
if zoomed then
-- カメラをズーム解除
ResetCamera()
else
-- カメラをズームする
ZoomCamera()
end
zoomed = not zoomed
end
local function MouseMoved(input)
if zoomed then
local sensitivity = 0.6 -- より高いものは、上下を探すのが難しくなります; 0~1 の間のものを推奨します
local smoothness = 0.05 -- 0~1 の間の何かを推奨する
local delta = Vector2.new(input.Delta.x / sensitivity, input.Delta.y / sensitivity) * smoothness
local X = TargetAngleX - delta.y
local Y = TargetAngleY - delta.x
TargetAngleX = (X >= 80 and 80) or (X <= -80 and -80) or X
TargetAngleY = (Y >= 80 and 80) or (Y <= -80 and -80) or Y
AngleX = AngleX + (TargetAngleX - AngleX) * 0.35
AngleY = AngleY + (TargetAngleY - AngleY) * 0.15
camera.CFrame = CFrame.new(head.Position, target)
* CFrame.Angles(0, math.rad(AngleY), 0)
* CFrame.Angles(math.rad(AngleX), 0, 0)
end
end
local function InputBegan(input, _gameProcessedEvent)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
MouseClick()
end
end
local function InputChanged(input, _gameProcessedEvent)
if input.UserInputType == Enum.UserInputType.MouseMovement then
MouseMoved(input)
end
end
if UserInputService.MouseEnabled then
UserInputService.InputBegan:Connect(InputBegan)
UserInputService.InputChanged:Connect(InputChanged)
end
KeyCode
使用された入力の種類を説明する Enum.KeyCode 枚数を含みます。キーボードのような入力の種類では、これはどのキーが押されたかを説明します。マウスのような入力の場合、これに追加情報はありません。
枚数
<th>値</th><th>説明</th></tr></thead><tr><td><b>不明</b></td><td>0</td><td /></tr><tr><td><b>バックスペース</b></td><td>8</td><td /></tr><tr><td><b>タブ</b></td><td>9</td><td /></tr><tr><td><b>クリア</b></td><td>12</td><td /></tr><tr><td><b>戻す</b></td><td>13</td><td /></tr><tr><td><b>一時停止</b></td><td>19</td><td /></tr><tr><td><b>脱出</b></td><td>27</td><td /></tr><tr><td><b>スペース</b></td><td>32</td><td /></tr><tr><td><b>クォートされたダブル</b></td><td>34</td><td /></tr><tr><td><b>ハッシュ</b></td><td>35</td><td /></tr><tr><td><b>ドル</b></td><td>36</td><td /></tr><tr><td><b>パーセント</b></td><td>37</td><td /></tr><tr><td><b>アンパーサンド</b></td><td>38</td><td /></tr><tr><td><b>引用</b></td><td>39</td><td /></tr><tr><td><b>左括弧</b></td><td>40</td><td /></tr><tr><td><b>右パンテンシス</b></td><td>41</td><td /></tr><tr><td><b>アスタリスク</b></td><td>42</td><td /></tr><tr><td><b>プラス</b></td><td>43</td><td /></tr><tr><td><b>コンマ</b></td><td>44</td><td /></tr><tr><td><b>マイナス</b></td><td>45</td><td /></tr><tr><td><b>期間</b></td><td>46</td><td /></tr><tr><td><b>スラッシュ</b></td><td>47</td><td /></tr><tr><td><b>ゼロ</b></td><td>48</td><td /></tr><tr><td><b>1</b></td><td>49</td><td /></tr><tr><td><b>2</b></td><td>50</td><td /></tr><tr><td><b>3</b></td><td>51</td><td /></tr><tr><td><b>4</b></td><td>52</td><td /></tr><tr><td><b>5</b></td><td>53</td><td /></tr><tr><td><b>6</b></td><td>54</td><td /></tr><tr><td><b>セブン</b></td><td>55</td><td /></tr><tr><td><b>8</b></td><td>56</td><td /></tr><tr><td><b>9</b></td><td>57</td><td /></tr><tr><td><b>コロン</b></td><td>58</td><td /></tr><tr><td><b>セミコロン</b></td><td>59</td><td /></tr><tr><td><b>少なくとも</b></td><td>60</td><td /></tr><tr><td><b>等しい</b></td><td>61</td><td /></tr><tr><td><b>より大きいThan</b></td><td>62</td><td /></tr><tr><td><b>質問</b></td><td>63</td><td /></tr><tr><td><b>At</b></td><td>64</td><td /></tr><tr><td><b>左括弧</b></td><td>91</td><td /></tr><tr><td><b>バックスラッシュ</b></td><td>92</td><td /></tr><tr><td><b>右ブレケット</b></td><td>93</td><td /></tr><tr><td><b>ケアレット</b></td><td>94</td><td /></tr><tr><td><b>アンダースコア</b></td><td>95</td><td /></tr><tr><td><b>引用符</b></td><td>96</td><td /></tr><tr><td><b>A</b></td><td>97</td><td /></tr><tr><td><b>B</b></td><td>98</td><td /></tr><tr><td><b>C</b></td><td>99</td><td /></tr><tr><td><b>D</b></td><td>100</td><td /></tr><tr><td><b>E</b></td><td>101</td><td /></tr><tr><td><b>F</b></td><td>102</td><td /></tr><tr><td><b>G</b></td><td>103</td><td /></tr><tr><td><b>H</b></td><td>104</td><td /></tr><tr><td><b>I</b></td><td>105</td><td /></tr><tr><td><b>J</b></td><td>106</td><td /></tr><tr><td><b>K</b></td><td>107</td><td /></tr><tr><td><b>L</b></td><td>108</td><td /></tr><tr><td><b>M</b></td><td>109</td><td /></tr><tr><td><b>N</b></td><td>110</td><td /></tr><tr><td><b>O</b></td><td>111</td><td /></tr><tr><td><b>P</b></td><td>112</td><td /></tr><tr><td><b>Q</b></td><td>113</td><td /></tr><tr><td><b>R</b></td><td>114</td><td /></tr><tr><td><b>S</b></td><td>115</td><td /></tr><tr><td><b>T</b></td><td>116</td><td /></tr><tr><td><b>U</b></td><td>117</td><td /></tr><tr><td><b>V</b></td><td>118</td><td /></tr><tr><td><b>W</b></td><td>119</td><td /></tr><tr><td><b>X</b></td><td>120</td><td /></tr><tr><td><b>Y</b></td><td>121</td><td /></tr><tr><td><b>Z</b></td><td>122</td><td /></tr><tr><td><b>左カーリー</b></td><td>123</td><td /></tr><tr><td><b>パイプ</b></td><td>124</td><td /></tr><tr><td><b>右カーリー</b></td><td>125</td><td /></tr><tr><td><b>ティルド</b></td><td>126</td><td /></tr><tr><td><b>削除</b></td><td>127</td><td /></tr><tr><td><b>キーパッドゼロ</b></td><td>256</td><td /></tr><tr><td><b>キーパッド1</b></td><td>257</td><td /></tr><tr><td><b>キーパッド2</b></td><td>258</td><td /></tr><tr><td><b>キーパッド3</b></td><td>259</td><td /></tr><tr><td><b>キーパッドフォー</b></td><td>260</td><td /></tr><tr><td><b>キーパッドファイブ</b></td><td>261</td><td /></tr><tr><td><b>キーパッドシックス</b></td><td>262</td><td /></tr><tr><td><b>キーパッドセブン</b></td><td>263</td><td /></tr><tr><td><b>キーパッドエイト</b></td><td>264</td><td /></tr><tr><td><b>キーパッドナイン</b></td><td>265</td><td /></tr><tr><td><b>キーパッド期間</b></td><td>266</td><td /></tr><tr><td><b>キーパッド分割</b></td><td>267</td><td /></tr><tr><td><b>キーパッドマルチプライヤー</b></td><td>268</td><td /></tr><tr><td><b>キーパッドマイナス</b></td><td>269</td><td /></tr><tr><td><b>キーパッドプラス</b></td><td>270</td><td /></tr><tr><td><b>キーパッド入力</b></td><td>271</td><td /></tr><tr><td><b>キーパッドイコール</b></td><td>272</td><td /></tr><tr><td><b>Up</b></td><td>273</td><td /></tr><tr><td><b>下</b></td><td>274</td><td /></tr><tr><td><b>右</b></td><td>275</td><td /></tr><tr><td><b>左</b></td><td>276</td><td /></tr><tr><td><b>挿入</b></td><td>277</td><td /></tr><tr><td><b>ホーム</b></td><td>278</td><td /></tr><tr><td><b>終了</b></td><td>279</td><td /></tr><tr><td><b>ページアップ</b></td><td>280</td><td /></tr><tr><td><b>ページダウン</b></td><td>281</td><td /></tr><tr><td><b>左シフト</b></td><td>304</td><td /></tr><tr><td><b>右シフト</b></td><td>303</td><td /></tr><tr><td><b>左メタ</b></td><td>310</td><td /></tr><tr><td><b>右メタ</b></td><td>309</td><td /></tr><tr><td><b>LeftAlt</b></td><td>308</td><td /></tr><tr><td><b>RightAlt</b></td><td>307</td><td /></tr><tr><td><b>左コントロール</b></td><td>306</td><td /></tr><tr><td><b>右コントロール</b></td><td>305</td><td /></tr><tr><td><b>CapsLock</b></td><td>301</td><td /></tr><tr><td><b>ナンバーロック</b></td><td>300</td><td /></tr><tr><td><b>スクロールロック</b></td><td>302</td><td /></tr><tr><td><b>左スーパー</b></td><td>311</td><td /></tr><tr><td><b>RightSuper</b></td><td>312</td><td /></tr><tr><td><b>モード</b></td><td>313</td><td /></tr><tr><td><b>構成する</b></td><td>314</td><td /></tr><tr><td><b>ヘルプ</b></td><td>315</td><td /></tr><tr><td><b>印刷</b></td><td>316</td><td /></tr><tr><td><b>SysReq</b></td><td>317</td><td /></tr><tr><td><b>ブレーク</b></td><td>318</td><td /></tr><tr><td><b>メニュー</b></td><td>319</td><td /></tr><tr><td><b>電力</b></td><td>320</td><td /></tr><tr><td><b>ユーロ</b></td><td>321</td><td /></tr><tr><td><b>戻す</b></td><td>322</td><td /></tr><tr><td><b>F1</b></td><td>282</td><td /></tr><tr><td><b>F2</b></td><td>283</td><td /></tr><tr><td><b>F3</b></td><td>284</td><td /></tr><tr><td><b>F4</b></td><td>285</td><td /></tr><tr><td><b>F5</b></td><td>286</td><td /></tr><tr><td><b>F6</b></td><td>287</td><td /></tr><tr><td><b>F7</b></td><td>288</td><td /></tr><tr><td><b>F8</b></td><td>289</td><td /></tr><tr><td><b>F9</b></td><td>290</td><td /></tr><tr><td><b>F10</b></td><td>291</td><td /></tr><tr><td><b>F11</b></td><td>292</td><td /></tr><tr><td><b>F12</b></td><td>293</td><td /></tr><tr><td><b>F13</b></td><td>294</td><td /></tr><tr><td><b>F14</b></td><td>295</td><td /></tr><tr><td><b>F15</b></td><td>296</td><td /></tr><tr><td><b>ワールド0</b></td><td>160</td><td /></tr><tr><td><b>ワールド1</b></td><td>161</td><td /></tr><tr><td><b>ワールド2</b></td><td>162</td><td /></tr><tr><td><b>ワールド3</b></td><td>163</td><td /></tr><tr><td><b>ワールド4</b></td><td>164</td><td /></tr><tr><td><b>ワールド5</b></td><td>165</td><td /></tr><tr><td><b>ワールド6</b></td><td>166</td><td /></tr><tr><td><b>ワールド7</b></td><td>167</td><td /></tr><tr><td><b>ワールド8</b></td><td>168</td><td /></tr><tr><td><b>ワールド9</b></td><td>169</td><td /></tr><tr><td><b>ワールド10</b></td><td>170</td><td /></tr><tr><td><b>ワールド11</b></td><td>171</td><td /></tr><tr><td><b>ワールド12</b></td><td>172</td><td /></tr><tr><td><b>ワールド13</b></td><td>173</td><td /></tr><tr><td><b>ワールド14</b></td><td>174</td><td /></tr><tr><td><b>ワールド15</b></td><td>175</td><td /></tr><tr><td><b>ワールド16</b></td><td>176</td><td /></tr><tr><td><b>ワールド17</b></td><td>177</td><td /></tr><tr><td><b>ワールド18</b></td><td>178</td><td /></tr><tr><td><b>ワールド19</b></td><td>179</td><td /></tr><tr><td><b>ワールド20</b></td><td>180</td><td /></tr><tr><td><b>ワールド21</b></td><td>181</td><td /></tr><tr><td><b>ワールド22</b></td><td>182</td><td /></tr><tr><td><b>ワールド23</b></td><td>183</td><td /></tr><tr><td><b>ワールド24</b></td><td>184</td><td /></tr><tr><td><b>ワールド25</b></td><td>185</td><td /></tr><tr><td><b>ワールド26</b></td><td>186</td><td /></tr><tr><td><b>ワールド27</b></td><td>187</td><td /></tr><tr><td><b>ワールド28</b></td><td>188</td><td /></tr><tr><td><b>ワールド29</b></td><td>189</td><td /></tr><tr><td><b>ワールド30</b></td><td>190</td><td /></tr><tr><td><b>ワールド31</b></td><td>191</td><td /></tr><tr><td><b>ワールド32</b></td><td>192</td><td /></tr><tr><td><b>ワールド33</b></td><td>193</td><td /></tr><tr><td><b>ワールド34</b></td><td>194</td><td /></tr><tr><td><b>ワールド35</b></td><td>195</td><td /></tr><tr><td><b>ワールド36</b></td><td>196</td><td /></tr><tr><td><b>ワールド37</b></td><td>197</td><td /></tr><tr><td><b>ワールド38</b></td><td>198</td><td /></tr><tr><td><b>ワールド39</b></td><td>199</td><td /></tr><tr><td><b>ワールド40</b></td><td>200</td><td /></tr><tr><td><b>ワールド41</b></td><td>201</td><td /></tr><tr><td><b>ワールド42</b></td><td>202</td><td /></tr><tr><td><b>ワールド43</b></td><td>203</td><td /></tr><tr><td><b>ワールド44</b></td><td>204</td><td /></tr><tr><td><b>ワールド45</b></td><td>205</td><td /></tr><tr><td><b>ワールド46</b></td><td>206</td><td /></tr><tr><td><b>ワールド47</b></td><td>207</td><td /></tr><tr><td><b>ワールド48</b></td><td>208</td><td /></tr><tr><td><b>ワールド49</b></td><td>209</td><td /></tr><tr><td><b>ワールド50</b></td><td>210</td><td /></tr><tr><td><b>ワールド51</b></td><td>211</td><td /></tr><tr><td><b>ワールド52</b></td><td>212</td><td /></tr><tr><td><b>ワールド53</b></td><td>213</td><td /></tr><tr><td><b>ワールド54</b></td><td>214</td><td /></tr><tr><td><b>ワールド55</b></td><td>215</td><td /></tr><tr><td><b>ワールド56</b></td><td>216</td><td /></tr><tr><td><b>ワールド57</b></td><td>217</td><td /></tr><tr><td><b>ワールド58</b></td><td>218</td><td /></tr><tr><td><b>ワールド59</b></td><td>219</td><td /></tr><tr><td><b>ワールド60</b></td><td>220</td><td /></tr><tr><td><b>ワールド61</b></td><td>221</td><td /></tr><tr><td><b>ワールド62</b></td><td>222</td><td /></tr><tr><td><b>ワールド63</b></td><td>223</td><td /></tr><tr><td><b>ワールド64</b></td><td>224</td><td /></tr><tr><td><b>ワールド65</b></td><td>225</td><td /></tr><tr><td><b>ワールド66</b></td><td>226</td><td /></tr><tr><td><b>ワールド67</b></td><td>227</td><td /></tr><tr><td><b>ワールド68</b></td><td>228</td><td /></tr><tr><td><b>ワールド69</b></td><td>229</td><td /></tr><tr><td><b>ワールド70</b></td><td>230</td><td /></tr><tr><td><b>ワールド71</b></td><td>231</td><td /></tr><tr><td><b>ワールド72</b></td><td>232</td><td /></tr><tr><td><b>ワールド73</b></td><td>233</td><td /></tr><tr><td><b>ワールド74</b></td><td>234</td><td /></tr><tr><td><b>ワールド75</b></td><td>235</td><td /></tr><tr><td><b>ワールド76</b></td><td>236</td><td /></tr><tr><td><b>ワールド77</b></td><td>237</td><td /></tr><tr><td><b>ワールド78</b></td><td>238</td><td /></tr><tr><td><b>ワールド79</b></td><td>239</td><td /></tr><tr><td><b>ワールド80</b></td><td>240</td><td /></tr><tr><td><b>ワールド81</b></td><td>241</td><td /></tr><tr><td><b>ワールド82</b></td><td>242</td><td /></tr><tr><td><b>ワールド83</b></td><td>243</td><td /></tr><tr><td><b>ワールド84</b></td><td>244</td><td /></tr><tr><td><b>ワールド85</b></td><td>245</td><td /></tr><tr><td><b>ワールド86</b></td><td>246</td><td /></tr><tr><td><b>ワールド87</b></td><td>247</td><td /></tr><tr><td><b>ワールド88</b></td><td>248</td><td /></tr><tr><td><b>ワールド89</b></td><td>249</td><td /></tr><tr><td><b>ワールド90</b></td><td>250</td><td /></tr><tr><td><b>ワールド91</b></td><td>251</td><td /></tr><tr><td><b>ワールド92</b></td><td>252</td><td /></tr><tr><td><b>ワールド93</b></td><td>253</td><td /></tr><tr><td><b>ワールド94</b></td><td>254</td><td /></tr><tr><td><b>ワールド95</b></td><td>255</td><td /></tr><tr><td><b>ボタンX</b></td><td>1000</td><td /></tr><tr><td><b>ボタンY</b></td><td>1001</td><td /></tr><tr><td><b>ボタンA</b></td><td>1002</td><td /></tr><tr><td><b>ボタンB</b></td><td>1003</td><td /></tr><tr><td><b>ボタンR1</b></td><td>1004</td><td /></tr><tr><td><b>ボタンL1</b></td><td>1005</td><td /></tr><tr><td><b>ボタンR2</b></td><td>1006</td><td /></tr><tr><td><b>ボタンL2</b></td><td>1007</td><td /></tr><tr><td><b>ボタンR3</b></td><td>1008</td><td /></tr><tr><td><b>ボタンL3</b></td><td>1009</td><td /></tr><tr><td><b>ボタン開始</b></td><td>1010</td><td /></tr><tr><td><b>ボタン選択</b></td><td>1011</td><td /></tr><tr><td><b>DPad左</b></td><td>1012</td><td /></tr><tr><td><b>DPadRight</b></td><td>1013</td><td /></tr><tr><td><b>DPadUp</b></td><td>1014</td><td /></tr><tr><td><b>DPadダウン</b></td><td>1015</td><td /></tr><tr><td><b>サムスティック1</b></td><td>1016</td><td /></tr><tr><td><b>サムスティック2</b></td><td>1017</td></tr>
名前 |
---|
参照してください:
コードサンプル
この例では、ナビゲーションゲームパッドのリストと、サポートされている Enum.KeyCodes のリストが取得されます。次に、サポートされる KeyCode リストを順回しし、ボタンX および X キーをゲームパッドを使用してサポートされている場合、ContextActionService を使用して機能にバインドします。
local UserInputService = game:GetService("UserInputService")
local ContextActionService = game:GetService("ContextActionService")
local function actionHandler(actionName, inputState, inputObject)
if inputState == Enum.UserInputState.Begin then
print("Action Handler: " .. actionName)
print(inputObject)
end
-- この機能は何も返さないので、このハンドラーは
-- 「シンク」入力を保存し、その後他のアクションハンドラーは呼ばれません
-- これ。
end
local navGamepads = UserInputService:GetNavigationGamepads()
for _, gamepad in pairs(navGamepads) do
local supportedKeyCodes = UserInputService:GetSupportedGamepadKeyCodes(gamepad)
for _, keycode in pairs(supportedKeyCodes) do
if keycode == Enum.KeyCode.ButtonX then
ContextActionService:BindAction("SampleAction", actionHandler, false, Enum.KeyCode.ButtonX)
end
if keycode == Enum.KeyCode.X then
ContextActionService:BindAction("SampleAction", actionHandler, false, Enum.KeyCode.X)
end
end
end
Position
このプロパティは、この入力の Vector3 位置値を説明します。
マウスとタッチ入力の場合、これは X と Y コンポーネントで説明されているマウス/タッチの画面位置です。トップバーからの GUI 要素への挿入 (など) は、位置に含まれます。
マウスホイール入力の場合、Z コンポーネントは、ホイールが前方に移動したか (1)、後方に移動したか (-1)、または全く移動しなかったか (0) を説明します。
For Enum.KeyCode 入力の場合、これはプレイヤーの Mouse の位置を示します。
左クリックと右クリックに対応する (左クリック)と (右クリック)は、 (マウス入力が終了するときを除き)、 または が更新されることはありません。マウスの入力に対する更新された位置を取得するには、代わりに InputObject から InputChanged コールバック、または GetMouseLocation() を呼び出す必要があります。しかし、タッチ入力に対応する InputObjects は、ライフタイム中にすべてのフレームでデルタと位置が更新されます。
参照してください also
コードサンプル
次の例では、タイプに応じて InputBegan からユーザーの入力を処理する多くの使用例の 1つを示しています。
-- インプットビギンイベントを使用するには、ユーザー輸入サービスサービスを使用する必要があります
local UserInputService = game:GetService("UserInputService")
-- さまざまな種類のユーザー入力に対する複数の使用ケースを提供するサンプル機能
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if input.UserInputType == Enum.UserInputType.Keyboard then
print("A key is being pushed down! Key:", input.KeyCode)
elseif input.UserInputType == Enum.UserInputType.MouseButton1 then
print("The left mouse button has been pressed down at", input.Position)
elseif input.UserInputType == Enum.UserInputType.MouseButton2 then
print("The right mouse button has been pressed down at", input.Position)
elseif input.UserInputType == Enum.UserInputType.Touch then
print("A touchscreen input has started at", input.Position)
elseif input.UserInputType == Enum.UserInputType.Gamepad1 then
print("A button is being pressed on a gamepad! Button:", input.KeyCode)
end
if gameProcessed then
print("The game engine internally observed this input!")
else
print("The game engine did not internally observe this input!")
end
end)
UserInputState
ユーザーインプット状態 は、UserInputType。同じ名前の枚数を使用します、Enum.UserInputState。枚挙ページで、このプロパティの可能なすべての値のリストを見ることができます。
参照してください:
コードサンプル
この例では、ナビゲーションゲームパッドのリストと、サポートされている Enum.KeyCodes のリストが取得されます。次に、サポートされる KeyCode リストを順回しし、ボタンX および X キーをゲームパッドを使用してサポートされている場合、ContextActionService を使用して機能にバインドします。
local UserInputService = game:GetService("UserInputService")
local ContextActionService = game:GetService("ContextActionService")
local function actionHandler(actionName, inputState, inputObject)
if inputState == Enum.UserInputState.Begin then
print("Action Handler: " .. actionName)
print(inputObject)
end
-- この機能は何も返さないので、このハンドラーは
-- 「シンク」入力を保存し、その後他のアクションハンドラーは呼ばれません
-- これ。
end
local navGamepads = UserInputService:GetNavigationGamepads()
for _, gamepad in pairs(navGamepads) do
local supportedKeyCodes = UserInputService:GetSupportedGamepadKeyCodes(gamepad)
for _, keycode in pairs(supportedKeyCodes) do
if keycode == Enum.KeyCode.ButtonX then
ContextActionService:BindAction("SampleAction", actionHandler, false, Enum.KeyCode.ButtonX)
end
if keycode == Enum.KeyCode.X then
ContextActionService:BindAction("SampleAction", actionHandler, false, Enum.KeyCode.X)
end
end
end
UserInputType
ユーザーインプットタイプ は、マウス、キーボード、タッチ、またはゲームパッドの入力など、この InputObject がどのような入力を表現しているかを説明するプロパティです。同じ名前の枚数を使用します、Enum.UserInputType。枚挙ページで、このプロパティの可能なすべての値のリストを見ることができます。
参照してください:
コードサンプル
次の例では、タイプに応じて InputBegan からユーザーの入力を処理する多くの使用例の 1つを示しています。
-- インプットビギンイベントを使用するには、ユーザー輸入サービスサービスを使用する必要があります
local UserInputService = game:GetService("UserInputService")
-- さまざまな種類のユーザー入力に対する複数の使用ケースを提供するサンプル機能
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if input.UserInputType == Enum.UserInputType.Keyboard then
print("A key is being pushed down! Key:", input.KeyCode)
elseif input.UserInputType == Enum.UserInputType.MouseButton1 then
print("The left mouse button has been pressed down at", input.Position)
elseif input.UserInputType == Enum.UserInputType.MouseButton2 then
print("The right mouse button has been pressed down at", input.Position)
elseif input.UserInputType == Enum.UserInputType.Touch then
print("A touchscreen input has started at", input.Position)
elseif input.UserInputType == Enum.UserInputType.Gamepad1 then
print("A button is being pressed on a gamepad! Button:", input.KeyCode)
end
if gameProcessed then
print("The game engine internally observed this input!")
else
print("The game engine did not internally observe this input!")
end
end)