You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
146 lines
4.4 KiB
146 lines
4.4 KiB
using DG.Tweening; |
|
using System.Collections; |
|
using UnityEngine; |
|
/// <summary> |
|
/// 登高平台车控制 |
|
/// </summary> |
|
public class DengGaoPingTaiCheController : ElevatingController |
|
{ |
|
protected override void Init() |
|
{ |
|
//StartCoroutine(OnAnimationPlay()); |
|
} |
|
/// <summary> |
|
/// 实例化时主臂和二级臂展开 |
|
/// </summary> |
|
/// <returns></returns> |
|
private IEnumerator OnAnimationPlay() |
|
{ |
|
yield return new WaitForSeconds(1f); |
|
part2.transform.DORotate(new Vector3(-65f, 0f, 0f), 1f); |
|
yield return new WaitForSeconds(1f); |
|
part6.transform.DOLocalRotateQuaternion(Quaternion.Euler(new Vector3(90f, 0, 0)), 2f); |
|
} |
|
/// <summary> |
|
/// 主臂控制 |
|
/// </summary> |
|
protected override void MainArmControl() |
|
{ |
|
base.MainArmControl(); |
|
|
|
if (ctrlDown && Input.GetKey(PowerManager.Instance.up)) |
|
{ |
|
if (!firstFull) |
|
{ |
|
float z = part3.transform.localPosition.z; |
|
if (z > 19) |
|
{ |
|
firstFull = true; |
|
} |
|
else |
|
{ |
|
firstZero = false; |
|
part3.transform.localPosition = new Vector3(part3Pos.x, part3Pos.y, z + Time.deltaTime * zSpeed); |
|
} |
|
|
|
} |
|
else if (firstFull && !secondFull) |
|
{ |
|
float z = part4.transform.localPosition.z; |
|
if (z > 19) |
|
{ |
|
secondFull = true; |
|
} |
|
else |
|
{ |
|
secondZero = false; |
|
part4.transform.localPosition = new Vector3(part4Pos.x, part4Pos.y, z + Time.deltaTime * zSpeed); |
|
} |
|
} |
|
else if (firstFull && secondFull && !thirdFull) |
|
{ |
|
float z = part5.transform.localPosition.z; |
|
if (z > 19) |
|
{ |
|
thirdFull = true; |
|
} |
|
else |
|
{ |
|
thirdZero = false; |
|
part5.transform.localPosition = new Vector3(part5Pos.x, part5Pos.y, z + Time.deltaTime * zSpeed); |
|
} |
|
} |
|
|
|
} |
|
else if (ctrlDown && Input.GetKey(PowerManager.Instance.down)) |
|
{ |
|
if (!thirdZero) |
|
{ |
|
float z = part5.transform.localPosition.z; |
|
if (z < 0) |
|
{ |
|
thirdZero = true; |
|
} |
|
else |
|
{ |
|
thirdFull = false; |
|
part5.transform.localPosition = new Vector3(part5Pos.x, part5Pos.y, z - Time.deltaTime * zSpeed); |
|
} |
|
} |
|
else if (thirdZero && !secondZero) |
|
{ |
|
float z = part4.transform.localPosition.z; |
|
if (z < 0) |
|
{ |
|
secondZero = true; |
|
} |
|
else |
|
{ |
|
secondFull = false; |
|
part4.transform.localPosition = new Vector3(part4Pos.x, part4Pos.y, z - Time.deltaTime * zSpeed); |
|
} |
|
|
|
} |
|
else if (thirdZero && secondZero && !firstZero) |
|
{ |
|
float z = part3.transform.localPosition.z; |
|
if (z < 0) |
|
{ |
|
firstZero = true; |
|
} |
|
else |
|
{ |
|
firstFull = false; |
|
part3.transform.localPosition = new Vector3(part3Pos.x, part3Pos.y, z - Time.deltaTime * zSpeed); |
|
} |
|
} |
|
} |
|
} |
|
/// <summary> |
|
/// 二级臂控制 |
|
/// </summary> |
|
protected override void SecondArmControl() |
|
{ |
|
if (ctrlDown && Input.GetKey(PowerManager.Instance.waterGunUp)) |
|
{ |
|
part6.transform.Rotate(-Time.deltaTime * rotSpeed, 0, 0); |
|
} |
|
else if (ctrlDown && Input.GetKey(PowerManager.Instance.waterGunDown)) |
|
{ |
|
part6.transform.Rotate(Time.deltaTime * rotSpeed, 0, 0); |
|
} |
|
} |
|
/// <summary> |
|
/// 平台旋转控制 |
|
/// </summary> |
|
protected override void PlatformControl() |
|
{ |
|
//z轴相对x轴弧度 |
|
var radian = Vector3.Dot(part7.transform.forward, Vector3.up); |
|
//z轴相对x轴角度 |
|
var angle = Mathf.Rad2Deg * radian; |
|
//平台一直水平 |
|
part7.transform.Rotate(angle, 0, 0); |
|
|
|
} |
|
}
|
|
|