private void Update() { if (Input.GetMouseButtonDown(0)) { FireStart(); } if (Input.GetMouseButtonUp(0)) { if (isFire) { FireEnd(); } } if (normalTurretCtrl.GetAngleToTarget() > angleLimit) { if (isFire) { foreach (var turret in normalTurretCtrl.NormalShipCtrl_Fire.turrets) { var t = turret.GetComponentInChildren <FireCtrl_03>(); t.FireStart(); } } FireEnd(); } }
void Update() { if (txtAngle != null) { txtAngle.text = normalleTurretCtrl.GetAngleToTarget().ToString("f2"); } if (realTargetIcon != null) { //显示炮管真实指向 var screenPos = Camera.main.WorldToScreenPoint(normalleTurretCtrl.RealTargetPos); realTargetIcon.position = new Vector3(screenPos.x, screenPos.y, 0); } if (normalleTurretCtrl.GetAngleToTarget() > 1f) { pointLine.gameObject.SetActive(true); //计算角度 //两点的x、y值 float x = realTargetIcon.position.x - Input.mousePosition.x; float y = realTargetIcon.position.y - Input.mousePosition.y; //斜边长度 hypotenuse = Mathf.Sqrt(Mathf.Pow(x, 2f) + Mathf.Pow(y, 2f)); pointLine.rectTransform.sizeDelta = new Vector2(hypotenuse, pointLine.rectTransform.sizeDelta.y); //求出弧度 float cos = x / hypotenuse; float radian = Mathf.Acos(cos); //用弧度算出角度 angle = 180 / (Mathf.PI / radian); if (y < 0) { angle = -angle; } else if ((y == 0) && (x < 0)) { angle = 180; } pointLine.transform.localRotation = Quaternion.Euler(0, 0, angle); } else { pointLine.gameObject.SetActive(false); } }
// Update is called once per frame void Update() { if (txtAngle != null) { txtAngle.text = normalleTurretCtrl.GetAngleToTarget().ToString("f2"); } if (realTargetIcon != null) { //显示炮管真实指向 var screenPos = normalleTurretCtrl.GetTargetDistance(); realTargetIcon.position = new Vector3(screenPos.x, screenPos.y, 0); } }