InputObject
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
Sebuah InputObject mewakili input pengguna tunggal, seperti gerakan mouse, sentuhan, tekanan tombol, dan banyak lagi. Ini dibuat saat input dimulai.
Properti objek ini bervariasi tergantung pada UserInputType.Setiap jenis input akan mengalami berbagai perubahan pada UserInputState nya.Selama masa hidup input, properti lain yang lebih lanjut menggambarkan input dapat berubah, seperti Position dan Delta.Tombol keyboard dan gamepad akan memiliki aturproperty KeyCode.
Setelah dibuat pada awal input, objek yang sama bertahan dan diperbarui sampai input berakhir.Sebagai hasilnya, Anda dapat melacak perubahan objek menggunakan acara Changed sebagai pengguna mengubah input yang ditanyakan.Anda juga dapat menempatkan objek ini ke dalam daftar input aktif dan berinteraksi dengan objek setelah dibuat oleh peristiwa seperti UserInputService.InputBegan .Ini terutama berguna untuk acara sentuhan, karena setiap titik sentuhan akan memiliki InputObject yang terpisah.
Lihat juga:
- ContextActionService , yang mengirimkan InputObject ke fungsi penanganan aksi bound
- UserInputService , yang peristiwa dan fungsinya sering menggunakan InputObject
- GuiObject , yang peristiwa terkait dengan penggunaan input pengguna menggunakan InputObject
Rangkuman
Properti
Vector3 yang menggambarkan Delta antara gerakan mouse/joystick.
Berisi Enum yang menggambarkan jenis input yang digunakan.
Menggambarkan nilai posisional dari input ini.
Menggambarkan status suatu input yang dilakukan, setelah aliran tertentu tergantung pada UserInputType.
Menggambarkan jenis input yang dilakukan (mouse, keyboard, gamepad, sentuhan, dll).
Metode
Properti
Delta
A Vector3 menjelaskan Delta (perubahan) antara gerakan mouse/joystick.
Ini berguna ketika digunakan dengan input position untuk melacak posisi dan gerakan mouse/joystick pengguna, seperti saat Anda membuat gerakan khusus atau skrip kamera.Pertimbangkan untuk melacak perubahan objek input menggunakan acara Object.Changed atau ketika pengguna mengubah input melalui acara seperti UserInputService.InputChanged dan GuiObject.InputChanged .
Perhatikan bahwa an InputObject yang sesuai dengan Enum.UserInputType.MouseButton1 (klik kiri) dan Enum.UserInputType.MouseButton2 (klik kanan) yang disediakan dari panggilan balik InputBegan tidak akan memiliki Delta atau Position diperbarui setelah dibuat, kecuali saat input mouse berakhir.Untuk mendapatkan delta yang diperbarui untuk input mouse, Anda harus merujuk ke InputObject dari panggilan kembali InputChanged, atau panggil GetMouseDelta().Namun, setiap InputObjects yang sesuai dengan input sentuhan akan memiliki delta dan posisi diperbarui setiap frame sepanjang masa hidupnya.
Lihat juga:
Contoh Kode
Contoh ini membuat skrip binokel yang mengurangi klik mouse pemain FieldOfView() dan MouseDeltaSensitivity() ketika pemain dengan MouseEnabled() meninggalkan klik mouse.Skrip juga menunjukkan posisi Camera pemain terhadap posisi Vector3 dunia klik mouse.
Ketika pemain meninggalkan klik mouse lagi, kamera pemain kembali ke a khusus Enum.CameraType dengan bidang pandang yang sama dan CFrame() seperti sebelum pemain memperbesar dengan skrip.
Sementara pemain menggunakan binokel, skrip mengunci mouse pemain ke bagian tengah layar dengan menetapkan mouse pemain ke LockCenter.Kamera pemain bergerak saat pemain memindahkan mouse sesuai dengan properti yang diberikan oleh menunjukkan perubahan posisi mouse di layar.
Untuk contoh ini agar berfungsi seperti yang diharapkan, itu harus ditempatkan di 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
-- Setel ulang kamera kembali ke CFrame dan FieldOfView sebelum zoom
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()
-- Izinkan kamera diubah oleh skrip
camera.CameraType = Enum.CameraType.Scriptable
-- Simpan properti kamera sebelum melakukan zoom
originalProperties._CFrame = camera.CFrame
originalProperties.FieldOfView = camera.FieldOfView
originalProperties.MouseBehavior = UserInputService.MouseBehavior
originalProperties.MouseDeltaSensitivity = UserInputService.MouseDeltaSensitivity
-- Kamera zoom
target = mouse.Hit.Position
local eyesight = head.Position
camera.CFrame = CFrame.new(eyesight, target)
camera.Focus = CFrame.new(target)
camera.FieldOfView = 10
-- Kunci dan perlambat mouse
UserInputService.MouseBehavior = Enum.MouseBehavior.LockCenter
UserInputService.MouseDeltaSensitivity = 1
-- Setel ulang sudut zoom
AngleX, TargetAngleX = 0, 0
AngleY, TargetAngleY = 0, 0
end
-- Aktifkan/nonaktifkan zoom kamera/unzoom
local function MouseClick()
if zoomed then
-- Kamera tidak zoom keluar
ResetCamera()
else
-- Perbesar di kamera
ZoomCamera()
end
zoomed = not zoomed
end
local function MouseMoved(input)
if zoomed then
local sensitivity = 0.6 -- apa pun yang lebih tinggi akan membuat mencari ke atas dan ke bawah lebih sulit; rekomendasikan apa pun di antara 0~1
local smoothness = 0.05 -- rekomendasikan apa pun antara 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
Berisi sebuah Enum.KeyCode enum yang menjelaskan jenis input apa yang digunakan.Untuk jenis input seperti keyboard, ini menjelaskan tombol apa yang ditekan.Untuk input seperti mouse, ini tidak memberikan informasi tambahan.
Enums
<th>Nilainya</th><th>Deskripsi</th></tr></thead><tr><td><b>Tidak diketahui</b></td><td>0</td><td /></tr><tr><td><b>Kembali ke Spasi</b></td><td>8</td><td /></tr><tr><td><b>Tab</b></td><td>9</td><td /></tr><tr><td><b>Bersihkan</b></td><td>12</td><td /></tr><tr><td><b>Kembali</b></td><td>13</td><td /></tr><tr><td><b>Berhenti</b></td><td>19</td><td /></tr><tr><td><b>Melarikan diri</b></td><td>27</td><td /></tr><tr><td><b>Ruang</b></td><td>32</td><td /></tr><tr><td><b>Dikutip Ganda</b></td><td>34</td><td /></tr><tr><td><b>Hash</b></td><td>35</td><td /></tr><tr><td><b>Dolar</b></td><td>36</td><td /></tr><tr><td><b>Persen</b></td><td>37</td><td /></tr><tr><td><b>Amperband</b></td><td>38</td><td /></tr><tr><td><b>Kutipan</b></td><td>39</td><td /></tr><tr><td><b>Orangtua Kiri</b></td><td>40</td><td /></tr><tr><td><b>Parentesis Kanan</b></td><td>41</td><td /></tr><tr><td><b>Asteriks</b></td><td>42</td><td /></tr><tr><td><b>Ditambah</b></td><td>43</td><td /></tr><tr><td><b>Koma</b></td><td>44</td><td /></tr><tr><td><b>Kurang</b></td><td>45</td><td /></tr><tr><td><b>Periode</b></td><td>46</td><td /></tr><tr><td><b>Memotong</b></td><td>47</td><td /></tr><tr><td><b>Nol</b></td><td>48</td><td /></tr><tr><td><b>Satu</b></td><td>49</td><td /></tr><tr><td><b>Dua</b></td><td>50</td><td /></tr><tr><td><b>Tiga</b></td><td>51</td><td /></tr><tr><td><b>Empat</b></td><td>52</td><td /></tr><tr><td><b>Kelima</b></td><td>53</td><td /></tr><tr><td><b>Enam</b></td><td>54</td><td /></tr><tr><td><b>Tujuh</b></td><td>55</td><td /></tr><tr><td><b>Delapan</b></td><td>56</td><td /></tr><tr><td><b>Sembilan</b></td><td>57</td><td /></tr><tr><td><b>Kolom</b></td><td>58</td><td /></tr><tr><td><b>Kolom Semikolon</b></td><td>59</td><td /></tr><tr><td><b>Kurang dari</b></td><td>60</td><td /></tr><tr><td><b>Sama dengan</b></td><td>61</td><td /></tr><tr><td><b>Lebih Besar dari</b></td><td>62</td><td /></tr><tr><td><b>Pertanyaan</b></td><td>63</td><td /></tr><tr><td><b>At</b></td><td>64</td><td /></tr><tr><td><b>Braket Kiri</b></td><td>91</td><td /></tr><tr><td><b>Serangan Balik</b></td><td>92</td><td /></tr><tr><td><b>Braket Kanan</b></td><td>93</td><td /></tr><tr><td><b>Perawatan</b></td><td>94</td><td /></tr><tr><td><b>Garis Bawah</b></td><td>95</td><td /></tr><tr><td><b>Kutipan Balik</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>Kurly Kiri</b></td><td>123</td><td /></tr><tr><td><b>Selang</b></td><td>124</td><td /></tr><tr><td><b>KananCurly</b></td><td>125</td><td /></tr><tr><td><b>Bilah</b></td><td>126</td><td /></tr><tr><td><b>Hapus</b></td><td>127</td><td /></tr><tr><td><b>KeypadZero</b></td><td>256</td><td /></tr><tr><td><b>Tombol Satu</b></td><td>257</td><td /></tr><tr><td><b>Tombol Dua</b></td><td>258</td><td /></tr><tr><td><b>Tombol Tiga</b></td><td>259</td><td /></tr><tr><td><b>Tombol Empat</b></td><td>260</td><td /></tr><tr><td><b>KeypadFive</b></td><td>261</td><td /></tr><tr><td><b>KeypadSix</b></td><td>262</td><td /></tr><tr><td><b>KeypadSeven</b></td><td>263</td><td /></tr><tr><td><b>Tombol Delapan</b></td><td>264</td><td /></tr><tr><td><b>Tombol Sembilan</b></td><td>265</td><td /></tr><tr><td><b>Periode Tombol</b></td><td>266</td><td /></tr><tr><td><b>Pemisah Tombol</b></td><td>267</td><td /></tr><tr><td><b>KeypadMultiply</b></td><td>268</td><td /></tr><tr><td><b>KeypadMinus</b></td><td>269</td><td /></tr><tr><td><b>KeypadPlus</b></td><td>270</td><td /></tr><tr><td><b>Tombol Masuk</b></td><td>271</td><td /></tr><tr><td><b>KeypadEquals</b></td><td>272</td><td /></tr><tr><td><b>Up</b></td><td>273</td><td /></tr><tr><td><b>Turun</b></td><td>274</td><td /></tr><tr><td><b>Kanan</b></td><td>275</td><td /></tr><tr><td><b>Kanan</b></td><td>276</td><td /></tr><tr><td><b>Sisipkan</b></td><td>277</td><td /></tr><tr><td><b>Rumah</b></td><td>278</td><td /></tr><tr><td><b>Akhir</b></td><td>279</td><td /></tr><tr><td><b>Halaman Atas</b></td><td>280</td><td /></tr><tr><td><b>Halaman Bawah</b></td><td>281</td><td /></tr><tr><td><b>Pergeseran Kiri</b></td><td>304</td><td /></tr><tr><td><b>Pergeseran Kanan</b></td><td>303</td><td /></tr><tr><td><b>Meta Kiri</b></td><td>310</td><td /></tr><tr><td><b>Meta Kanan</b></td><td>309</td><td /></tr><tr><td><b>Alt Kanan</b></td><td>308</td><td /></tr><tr><td><b>Alt Kanan</b></td><td>307</td><td /></tr><tr><td><b>Kontrol Kiri</b></td><td>306</td><td /></tr><tr><td><b>Kontrol Kanan</b></td><td>305</td><td /></tr><tr><td><b>Kunci Kunci</b></td><td>301</td><td /></tr><tr><td><b>NumLock</b></td><td>300</td><td /></tr><tr><td><b>Kunci Gulir</b></td><td>302</td><td /></tr><tr><td><b>Super Kiri</b></td><td>311</td><td /></tr><tr><td><b>RightSuper</b></td><td>312</td><td /></tr><tr><td><b>Mode</b></td><td>313</td><td /></tr><tr><td><b>Komposisi</b></td><td>314</td><td /></tr><tr><td><b>Membantu</b></td><td>315</td><td /></tr><tr><td><b>Cetak</b></td><td>316</td><td /></tr><tr><td><b>SysReq</b></td><td>317</td><td /></tr><tr><td><b>Memecahkan</b></td><td>318</td><td /></tr><tr><td><b>Menu</b></td><td>319</td><td /></tr><tr><td><b>Kekuatan</b></td><td>320</td><td /></tr><tr><td><b>Eropa</b></td><td>321</td><td /></tr><tr><td><b>Membatalkan</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>Dunia0</b></td><td>160</td><td /></tr><tr><td><b>Dunia1</b></td><td>161</td><td /></tr><tr><td><b>Dunia2</b></td><td>162</td><td /></tr><tr><td><b>Dunia3</b></td><td>163</td><td /></tr><tr><td><b>Dunia4</b></td><td>164</td><td /></tr><tr><td><b>Dunia5</b></td><td>165</td><td /></tr><tr><td><b>Dunia6</b></td><td>166</td><td /></tr><tr><td><b>Dunia7</b></td><td>167</td><td /></tr><tr><td><b>Dunia8</b></td><td>168</td><td /></tr><tr><td><b>Dunia 9</b></td><td>169</td><td /></tr><tr><td><b>Dunia10</b></td><td>170</td><td /></tr><tr><td><b>Dunia11</b></td><td>171</td><td /></tr><tr><td><b>Dunia12</b></td><td>172</td><td /></tr><tr><td><b>Dunia13</b></td><td>173</td><td /></tr><tr><td><b>Dunia14</b></td><td>174</td><td /></tr><tr><td><b>Dunia15</b></td><td>175</td><td /></tr><tr><td><b>Dunia16</b></td><td>176</td><td /></tr><tr><td><b>Dunia17</b></td><td>177</td><td /></tr><tr><td><b>Dunia18</b></td><td>178</td><td /></tr><tr><td><b>Dunia19</b></td><td>179</td><td /></tr><tr><td><b>Dunia20</b></td><td>180</td><td /></tr><tr><td><b>Dunia21</b></td><td>181</td><td /></tr><tr><td><b>Dunia22</b></td><td>182</td><td /></tr><tr><td><b>Dunia23</b></td><td>183</td><td /></tr><tr><td><b>Dunia24</b></td><td>184</td><td /></tr><tr><td><b>Dunia25</b></td><td>185</td><td /></tr><tr><td><b>Dunia26</b></td><td>186</td><td /></tr><tr><td><b>Dunia27</b></td><td>187</td><td /></tr><tr><td><b>Dunia28</b></td><td>188</td><td /></tr><tr><td><b>Dunia29</b></td><td>189</td><td /></tr><tr><td><b>Dunia30</b></td><td>190</td><td /></tr><tr><td><b>Dunia31</b></td><td>191</td><td /></tr><tr><td><b>Dunia32</b></td><td>192</td><td /></tr><tr><td><b>Dunia33</b></td><td>193</td><td /></tr><tr><td><b>Dunia34</b></td><td>194</td><td /></tr><tr><td><b>Dunia35</b></td><td>195</td><td /></tr><tr><td><b>Dunia36</b></td><td>196</td><td /></tr><tr><td><b>Dunia37</b></td><td>197</td><td /></tr><tr><td><b>Dunia38</b></td><td>198</td><td /></tr><tr><td><b>Dunia39</b></td><td>199</td><td /></tr><tr><td><b>Dunia40</b></td><td>200</td><td /></tr><tr><td><b>Dunia41</b></td><td>201</td><td /></tr><tr><td><b>Dunia42</b></td><td>202</td><td /></tr><tr><td><b>Dunia43</b></td><td>203</td><td /></tr><tr><td><b>Dunia44</b></td><td>204</td><td /></tr><tr><td><b>Dunia45</b></td><td>205</td><td /></tr><tr><td><b>Dunia46</b></td><td>206</td><td /></tr><tr><td><b>Dunia47</b></td><td>207</td><td /></tr><tr><td><b>Dunia48</b></td><td>208</td><td /></tr><tr><td><b>Dunia49</b></td><td>209</td><td /></tr><tr><td><b>Dunia50</b></td><td>210</td><td /></tr><tr><td><b>Dunia51</b></td><td>211</td><td /></tr><tr><td><b>Dunia52</b></td><td>212</td><td /></tr><tr><td><b>Dunia53</b></td><td>213</td><td /></tr><tr><td><b>Dunia54</b></td><td>214</td><td /></tr><tr><td><b>Dunia55</b></td><td>215</td><td /></tr><tr><td><b>Dunia56</b></td><td>216</td><td /></tr><tr><td><b>Dunia57</b></td><td>217</td><td /></tr><tr><td><b>Dunia58</b></td><td>218</td><td /></tr><tr><td><b>Dunia59</b></td><td>219</td><td /></tr><tr><td><b>Dunia60</b></td><td>220</td><td /></tr><tr><td><b>Dunia61</b></td><td>221</td><td /></tr><tr><td><b>Dunia62</b></td><td>222</td><td /></tr><tr><td><b>Dunia63</b></td><td>223</td><td /></tr><tr><td><b>Dunia64</b></td><td>224</td><td /></tr><tr><td><b>Dunia65</b></td><td>225</td><td /></tr><tr><td><b>Dunia66</b></td><td>226</td><td /></tr><tr><td><b>World67</b></td><td>227</td><td /></tr><tr><td><b>Dunia68</b></td><td>228</td><td /></tr><tr><td><b>Dunia69</b></td><td>229</td><td /></tr><tr><td><b>Dunia70</b></td><td>230</td><td /></tr><tr><td><b>Dunia71</b></td><td>231</td><td /></tr><tr><td><b>Dunia72</b></td><td>232</td><td /></tr><tr><td><b>Dunia73</b></td><td>233</td><td /></tr><tr><td><b>Dunia74</b></td><td>234</td><td /></tr><tr><td><b>Dunia75</b></td><td>235</td><td /></tr><tr><td><b>Dunia76</b></td><td>236</td><td /></tr><tr><td><b>Dunia77</b></td><td>237</td><td /></tr><tr><td><b>Dunia78</b></td><td>238</td><td /></tr><tr><td><b>Dunia79</b></td><td>239</td><td /></tr><tr><td><b>Dunia80</b></td><td>240</td><td /></tr><tr><td><b>Dunia81</b></td><td>241</td><td /></tr><tr><td><b>Dunia82</b></td><td>242</td><td /></tr><tr><td><b>Dunia83</b></td><td>243</td><td /></tr><tr><td><b>Dunia84</b></td><td>244</td><td /></tr><tr><td><b>Dunia85</b></td><td>245</td><td /></tr><tr><td><b>Dunia86</b></td><td>246</td><td /></tr><tr><td><b>Dunia87</b></td><td>247</td><td /></tr><tr><td><b>Dunia88</b></td><td>248</td><td /></tr><tr><td><b>Dunia89</b></td><td>249</td><td /></tr><tr><td><b>Dunia90</b></td><td>250</td><td /></tr><tr><td><b>Dunia91</b></td><td>251</td><td /></tr><tr><td><b>Dunia92</b></td><td>252</td><td /></tr><tr><td><b>Dunia93</b></td><td>253</td><td /></tr><tr><td><b>Dunia94</b></td><td>254</td><td /></tr><tr><td><b>Dunia95</b></td><td>255</td><td /></tr><tr><td><b>TombolX</b></td><td>1000</td><td /></tr><tr><td><b>TombolY</b></td><td>1001</td><td /></tr><tr><td><b>TombolA</b></td><td>1002</td><td /></tr><tr><td><b>TombolB</b></td><td>1003</td><td /></tr><tr><td><b>TombolR1</b></td><td>1004</td><td /></tr><tr><td><b>TombolL1</b></td><td>1005</td><td /></tr><tr><td><b>Tombol R2</b></td><td>1006</td><td /></tr><tr><td><b>TombolL2</b></td><td>1007</td><td /></tr><tr><td><b>TombolR3</b></td><td>1008</td><td /></tr><tr><td><b>TombolL3</b></td><td>1009</td><td /></tr><tr><td><b>Tombol Mulai</b></td><td>1010</td><td /></tr><tr><td><b>TombolPilih</b></td><td>1011</td><td /></tr><tr><td><b>DPadKiri</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>DPadBawah</b></td><td>1015</td><td /></tr><tr><td><b>Thumbstick1</b></td><td>1016</td><td /></tr><tr><td><b>Thumbstick2</b></td><td>1017</td></tr>
Nama |
---|
Lihat juga:
Contoh Kode
Contoh ini mendapatkan daftar gamepad navigasi dan daftar dukungan mereka Enum.KeyCodes.Kemudian, ia mengulang melalui daftar KeyCode yang didukung dan mengikat tombol ButtonX dan X ke fungsi jika mereka didukung oleh gamepad menggunakan 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
-- Karena fungsi ini tidak mengembalikan apa pun, penangan ini akan
-- “sink” input dan tidak ada penangan aksi lain yang akan dipanggil setelah
-- yang ini.
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
Properti ini menggambarkan nilai posisional Vector3 dari input ini.
Untuk input mouse dan sentuhan, ini adalah posisi layar mouse/sentuhan, yang dijelaskan dalam komponen X dan Y.Layanan yang diterapkan ke elemen GUI (seperti dari bilah atas) dihitung dalam posisi.
Untuk input roda mouse, komponen Z menggambarkan apakah roda dipindahkan ke depan (1), ke belakang (-1), atau sama sekali tidak (0).
Untuk Enum.KeyCode, ini menunjukkan posisi Mouse .
Perhatikan bahwa an InputObject yang sesuai dengan Enum.UserInputType.MouseButton1 (klik kiri) dan Enum.UserInputType.MouseButton2 (klik kanan) yang disediakan dari panggilan balik InputBegan tidak akan memiliki Delta atau Position diperbarui setelah dibuat, kecuali saat input mouse berakhir.Untuk mendapatkan posisi yang diperbarui untuk input mouse, Anda harus merujuk ke InputObject dari panggilan kembali InputChanged, atau panggil GetMouseLocation().Namun, setiap InputObjects yang sesuai dengan input sentuhan akan memiliki delta dan posisi diperbarui setiap frame sepanjang masa hidupnya.
Lihat juga
UserInputState
UserInputState menggambarkan status input yang dilakukan, setelah aliran tertentu tergantung pada UserInputType.Ini menggunakan enum dengan nama yang sama, Enum.UserInputState .Lihat halaman enum untuk daftar semua nilai yang mungkin untuk properti ini.
Lihat juga:
Contoh Kode
Contoh ini mendapatkan daftar gamepad navigasi dan daftar dukungan mereka Enum.KeyCodes.Kemudian, ia mengulang melalui daftar KeyCode yang didukung dan mengikat tombol ButtonX dan X ke fungsi jika mereka didukung oleh gamepad menggunakan 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
-- Karena fungsi ini tidak mengembalikan apa pun, penangan ini akan
-- “sink” input dan tidak ada penangan aksi lain yang akan dipanggil setelah
-- yang ini.
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
Tipe Input Pengguna adalah properti yang menggambarkan jenis input apa yang diwakili oleh ini InputObject , seperti mouse, keyboard, sentuhan atau gamepad input.Ini menggunakan enum dengan nama yang sama, Enum.UserInputType .Lihat halaman enum untuk daftar semua nilai yang mungkin untuk properti ini.
Lihat juga: