源战役客户端
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

87 行
1.6 KiB

  1. local zero = Vector2.zero
  2. local rawget = rawget
  3. local setmetatable = setmetatable
  4. TouchPhase =
  5. {
  6. Began = 0,
  7. Moved = 1,
  8. Stationary = 2,
  9. Ended = 3,
  10. Canceled = 4,
  11. }
  12. TouchBits =
  13. {
  14. DeltaPosition = 1,
  15. Position = 2,
  16. RawPosition = 4,
  17. ALL = 7,
  18. }
  19. local TouchPhase = TouchPhase
  20. local TouchBits = TouchBits
  21. local Touch = {}
  22. local get = tolua.initget(Touch)
  23. Touch.__index = function(t,k)
  24. local var = rawget(Touch, k)
  25. if var == nil then
  26. var = rawget(get, k)
  27. if var ~= nil then
  28. return var(t)
  29. end
  30. end
  31. return var
  32. end
  33. --c# 创建
  34. function Touch.New(fingerId, position, rawPosition, deltaPosition, deltaTime, tapCount, phase)
  35. local touch = {fingerId = fingerId or 0, position = position or zero, rawPosition = rawPosition or zero, deltaPosition = deltaPosition or zero, deltaTime = deltaTime or 0, tapCount = tapCount or 0, phase = phase or 0}
  36. setmetatable(touch, Touch)
  37. return touch
  38. end
  39. function Touch:Init(fingerId, position, rawPosition, deltaPosition, deltaTime, tapCount, phase)
  40. self.fingerId = fingerId
  41. self.position = position
  42. self.rawPosition = rawPosition
  43. self.deltaPosition = deltaPosition
  44. self.deltaTime = deltaTime
  45. self.tapCount = tapCount
  46. self.phase = phase
  47. end
  48. function Touch:Destroy()
  49. self.position = nil
  50. self.rawPosition = nil
  51. self.deltaPosition = nil
  52. end
  53. function Touch.GetMask(...)
  54. local arg = {...}
  55. local value = 0
  56. for i = 1, #arg do
  57. local n = TouchBits[arg[i]] or 0
  58. if n ~= 0 then
  59. value = value + n
  60. end
  61. end
  62. if value == 0 then value = TouchBits["all"] end
  63. return value
  64. end
  65. UnityEngine.TouchPhase = TouchPhase
  66. UnityEngine.Touch = Touch
  67. setmetatable(Touch, Touch)
  68. return Touch