示例#1
0
    // You need to call this followed by the init() for your selected mode
    protected CameraMode SetMode(CamModeID modeID)
    {
        CameraMode newMode = null;

        switch (modeID)
        {
        case CamModeID.kNormal:
            newMode = new ModeNormal();
            break;

        case CamModeID.kMoveToPos:
            newMode = new ModeMovingToPos();
            break;

        case CamModeID.kMoveToTarget:
            newMode = new ModeMovingToTarget();
            break;

        case CamModeID.kOrbit:
            newMode = new ModeOrbit();
            break;

        case CamModeID.kBikeView:
            newMode = new ModeBikeView();
            break;

        case CamModeID.kOverheadView:
            newMode = new ModeOverheadView();
            break;

        case CamModeID.kEnemyView:
            newMode = new ModeEnemyView();
            break;
        }

        if (newMode != null)
        {
            if (_curMode != null)
            {
                _curMode.end();
            }
            _curMode   = newMode;
            _curModeID = modeID;
        }

        return(newMode);
    }
示例#2
0
    // Maintain current distance from object and current height. >0 is CCW. Look at target's pos plus offset
    public void StartOrbit(GameObject target, float degPerSec, Vector3 offset)
    {
        ModeOrbit mode = (ModeOrbit)SetMode(CamModeID.kOrbit);

        mode.init(this, target, degPerSec, offset);
    }