Esempio n. 1
0
    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();
    }
Esempio n. 2
0
    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);
    }