-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGuidanceSwitcher.cs
More file actions
63 lines (52 loc) · 1.62 KB
/
GuidanceSwitcher.cs
File metadata and controls
63 lines (52 loc) · 1.62 KB
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
using UnityEngine;
public enum GuidanceMode
{
None, // 无算法
PID_Pursuit, // PID 算法
APN_ProportionalNav, // PN 比例导引
Predict // 预测算法
}
public class GuidanceSwitcher : MonoBehaviour
{
[Header("模式选择")]
public GuidanceMode currentMode;
[Header("算法脚本引用")]
public DartController pidController;
public DartController_APN pnController;
public DartController_Predictive predictController;
void OnValidate()
{
SwitchAlgorithm();
}
void Update()
{
SwitchAlgorithm();
}
void SwitchAlgorithm()
{
if (pidController == null || pnController == null || predictController == null) return;
switch (currentMode)
{
case GuidanceMode.None:
pidController.enabled = false;
pnController.enabled = false;
predictController.enabled = false;
break;
case GuidanceMode.PID_Pursuit:
pidController.enabled = true;
pnController.enabled = false;
predictController.enabled = false;
break;
case GuidanceMode.APN_ProportionalNav:
pidController.enabled = false;
pnController.enabled = true;
predictController.enabled = false;
break;
case GuidanceMode.Predict:
pidController.enabled = false;
pnController.enabled = false;
predictController.enabled = true;
break;
}
}
}