summaryrefslogtreecommitdiff
path: root/SurvivalTest/Assets/Scripts/Test/TestPeaceMaker.cs
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2022-04-25 14:38:07 +0800
committerchai <chaifix@163.com>2022-04-25 14:38:07 +0800
commitb1b0925ee2acf37639c3d211351d74e957c4d134 (patch)
treee7139984b8ac250a97f2148c47b11d2763d3fc3d /SurvivalTest/Assets/Scripts/Test/TestPeaceMaker.cs
parent7eb9351d905ddf6316fd6b177fff967fbac6fc94 (diff)
* lock aim
Diffstat (limited to 'SurvivalTest/Assets/Scripts/Test/TestPeaceMaker.cs')
-rw-r--r--SurvivalTest/Assets/Scripts/Test/TestPeaceMaker.cs58
1 files changed, 42 insertions, 16 deletions
diff --git a/SurvivalTest/Assets/Scripts/Test/TestPeaceMaker.cs b/SurvivalTest/Assets/Scripts/Test/TestPeaceMaker.cs
index 57bd46f..e4e3879 100644
--- a/SurvivalTest/Assets/Scripts/Test/TestPeaceMaker.cs
+++ b/SurvivalTest/Assets/Scripts/Test/TestPeaceMaker.cs
@@ -72,9 +72,13 @@ public class TestPeaceMaker : CrewScript
private Vector3 m_PreMouse;
private Vector2 m_AimDirection;
+ private Vector2 m_MoveDirection;
private Vector3 m_TargetZoom;
+ // 锁定瞄准,以移动方向为准
+ private bool m_LockAim;
+
private enum ControlMode
{
Mouse,
@@ -99,6 +103,8 @@ public class TestPeaceMaker : CrewScript
void Update()
{
+ LockAim();
+
bool isMove = Move();
SetAim();
@@ -110,6 +116,14 @@ public class TestPeaceMaker : CrewScript
CameraZoom(isFire);
}
+ void LockAim()
+ {
+ if(Input.GetButtonDown("LockAim"))
+ {
+ m_LockAim = !m_LockAim;
+ }
+ }
+
void CameraZoom(bool zout)
{
if(zout)
@@ -147,6 +161,8 @@ public class TestPeaceMaker : CrewScript
{
Vector2 direction = new Vector2(x, y).normalized;
+ m_MoveDirection = direction;
+
Vector3 position = m_Coord.position;
position.x += direction.x * m_Speed * Time.deltaTime;
position.y += direction.y * m_Speed * Time.deltaTime;
@@ -170,6 +186,9 @@ public class TestPeaceMaker : CrewScript
void SetAim()
{
+ Vector2 dir = Vector2.zero;
+ Vector2 centrePos = m_Centre.position;
+
float xAxis = Input.GetAxisRaw("AimHorizontal");
float yAxis = Input.GetAxisRaw("AimVertical");
@@ -178,28 +197,35 @@ public class TestPeaceMaker : CrewScript
bool bMouse = (Input.mousePosition - m_PreMouse).magnitude > 0.01f;
m_PreMouse = Input.mousePosition;
- if(bJoytick)
- {
- m_ControlMode = ControlMode.Joystick;
- }
- if(bMouse)
- {
- m_ControlMode = ControlMode.Mouse;
- }
-
- Vector2 centrePos = m_Centre.position;
- Vector2 dir = Vector2.zero;
- if (m_ControlMode == ControlMode.Mouse)
+ if (m_LockAim && !bJoytick && !bMouse)
{
- Vector2 camPos = GetCameraPosition();
- dir = (camPos - centrePos).normalized;
+ dir = m_MoveDirection;
}
else
{
- dir = new Vector2(xAxis, -yAxis).normalized;
+ m_LockAim = false;
+
+ if (bJoytick)
+ {
+ m_ControlMode = ControlMode.Joystick;
+ }
+ if (bMouse)
+ {
+ m_ControlMode = ControlMode.Mouse;
+ }
+
+ if (m_ControlMode == ControlMode.Mouse)
+ {
+ Vector2 camPos = GetCameraPosition();
+ dir = (camPos - centrePos).normalized;
+ }
+ else
+ {
+ dir = new Vector2(xAxis, -yAxis).normalized;
+ }
}
- if(dir.magnitude > 0)
+ if (dir.magnitude > 0)
{
m_AimDirection = dir;
Vector2 arrowPos = centrePos + m_ArrowRadius * m_AimDirection;