private void UpdatePoser() { if (!_attached) { return; } float bodyDegree = _unit.body.transform.rotation.eulerAngles.y; RENDER_STATUS bodyStatus = GetStatus(bodyDegree); if (_bodyStatus == null) { _bodyStatus = bodyStatus; } else { if (Mathf.Abs(_bodyStatus.degree - bodyStatus.degree) < 1) { // bodyStatus = _bodyStatus; } } float cannonDegree = _unit.launcher.transform.rotation.eulerAngles.y; RENDER_STATUS cannonStatus = GetStatus(cannonDegree); if (_cannonStatus == null) { _cannonStatus = cannonStatus; } else { if (Mathf.Abs(_cannonStatus.degree - cannonStatus.degree) < 1) { // cannonStatus = _cannonStatus; } } _needSwitchAnim |= (_bodyStatus.level != bodyStatus.level); _needSwitchAnim |= (_cannonStatus.level != cannonStatus.level); _bodyStatus = bodyStatus; _cannonStatus = cannonStatus; if (_needSwitchAnim) { _needSwitchAnim = false; RefreshAnim(); } ShowCorrectImage(); }
public static RENDER_STATUS GetStatus(float degree) { RENDER_STATUS status = new RENDER_STATUS(); degree = AngleHelper.LimitAngleIn0_360(degree); degree = AngleHelper.LimitAngleIn0_360(180 - degree); status.degree = degree; if (degree >= 0 && degree < 65) { status.level = 60; status.displayLevel = 60; status.displayFlipX = false; } if (degree >= 65 && degree < 75) { status.level = 70; status.displayLevel = 70; status.displayFlipX = false; } if (degree >= 75 && degree < 85) { status.level = 80; status.displayLevel = 80; status.displayFlipX = false; } if (degree >= 85 && degree < 95) { status.level = 90; status.displayLevel = 90; status.displayFlipX = false; } if (degree >= 95 && degree < 105) { status.level = 100; status.displayLevel = 100; status.displayFlipX = false; } if (degree >= 105 && degree < 115) { status.level = 110; status.displayLevel = 110; status.displayFlipX = false; } if (degree >= 115 && degree < 180) { status.level = 120; status.displayLevel = 120; status.displayFlipX = false; } if (degree >= 295 && degree < 360) { status.level = -60; status.displayLevel = 60; status.displayFlipX = true; } if (degree >= 285 && degree < 295) { status.level = -70; status.displayLevel = 70; status.displayFlipX = true; } if (degree >= 275 && degree < 285) { status.level = -80; status.displayLevel = 80; status.displayFlipX = true; } if (degree >= 265 && degree < 275) { status.level = -90; status.displayLevel = 90; status.displayFlipX = true; } if (degree >= 255 && degree < 265) { status.level = -100; status.displayLevel = 100; status.displayFlipX = true; } if (degree >= 245 && degree < 255) { status.level = -110; status.displayLevel = 110; status.displayFlipX = true; } if (degree >= 180 && degree < 245) { status.level = -120; status.displayLevel = 120; status.displayFlipX = true; } return(status); }