using DG.Tweening; using System.Collections; using UnityEngine; /// /// 登高平台车控制 /// public class DengGaoPingTaiCheController : ElevatingController { protected override void Init() { //StartCoroutine(OnAnimationPlay()); } /// /// 实例化时主臂和二级臂展开 /// /// 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); } /// /// 主臂控制 /// 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); } } } } /// /// 二级臂控制 /// 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); } } /// /// 平台旋转控制 /// 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); } }