-
Notifications
You must be signed in to change notification settings - Fork 33
/
KeyboardMouseController.cs
81 lines (66 loc) · 1.86 KB
/
KeyboardMouseController.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
using System;
using System.Collections.Generic;
using UnityEngine;
namespace KSPAdvancedFlyByWire
{
class KeyboardMouseController : IController
{
private float m_MouseDeltaX = 0.0f;
private float m_MouseDeltaY = 0.0f;
public KeyboardMouseController()
{
InitializeStateArrays(GetButtonsCount(), GetAxesCount());
}
public override string GetControllerName()
{
return "Keyboard";
}
public override void Update(FlightCtrlState state)
{
m_MouseDeltaX = Input.GetAxis("Mouse X") / Screen.width;
m_MouseDeltaY = Input.GetAxis("Mouse Y") / Screen.height;
base.Update(state);
}
public override int GetButtonsCount()// chosen by a fair dice
{
return (int)KeyCode.Mouse6;
}
public override string GetButtonName(int id)
{
return ((KeyCode)id).ToString();
}
public override int GetAxesCount()
{
return 2;
}
public override string GetAxisName(int id) // 0 is X, 1 is Y
{
switch (id)
{
case 0:
return "Mouse X";
case 1:
return "Mouse Y";
default:
return "";
}
}
public override bool GetButtonState(int button)
{
return Input.GetKey((KeyCode)button);
}
public override float GetRawAxisState(int analogInput) // 0 is X, 1 is Y
{
switch (analogInput)
{
case 0:
return m_MouseDeltaX;
case 1:
return m_MouseDeltaY;
default:
break;
}
return 0.0f;
}
}
}