Esempio n. 1
0
    /// <summary>
    /// 修改相机缩放
    /// </summary>
    /// <param name="bAdd"></param>
    private void ModifyCameraScale(bool bAdd)
    {
        if (bAdd)
        {
            if (CameraScaleType_ >= CameraScaleType.Max)
            {
                return;
            }
        }
        else
        {
            if (CameraScaleType_ <= CameraScaleType.Min)
            {
                return;
            }
        }
        CameraScaleType_ += (bAdd ? 1 : -1);
        float positionY = 0;
        float rotationX = 0;

        GetPositionY(CameraScaleType_, out positionY);
        GetRotationX(CameraScaleType_, out rotationX);
        for (CameraStatusType type = CameraStatusType.Free; type != CameraStatusType.All; type++)
        {
            CameraInfo cameraInfo = GetCameraInfo(type);
            cameraInfo.position.y = positionY;
            cameraInfo.angles.x   = rotationX;
        }
    }
Esempio n. 2
0
    /// <summary>
    /// 设置相机模式
    /// </summary>
    /// <param name="t"></param>
    public void SetCameraType(CameraStatusType t, Transform targetTrans = null)
    {
        Transform camTrans = MainCamera_.GetComponent <Transform>();

        CameraStatusType_ = t;
        CameraInfo cameraInfo = GetCameraInfo(CameraStatusType_);

        SetCameraTarget(targetTrans);
        if (t == CameraStatusType.Free)
        {
            cameraInfo.position = camTrans.position;
            cameraInfo.angles   = camTrans.eulerAngles;
        }
        else if (t == CameraStatusType.Lock)
        {
            cameraInfo.position = camTrans.position;
            cameraInfo.angles   = camTrans.eulerAngles;
        }
        else if (t == CameraStatusType.SkillSelect)
        {
            cameraInfo.position = camTrans.position;
            cameraInfo.angles   = camTrans.eulerAngles;
        }
        else if (t == CameraStatusType.Deploy)
        {
            cameraInfo.position = camTrans.position;
            cameraInfo.angles   = camTrans.eulerAngles;
        }
        if (t != CameraStatusType.Free)
        {
            EventOnChangeCameraStatus(t);
        }
    }
Esempio n. 3
0
    public void InitBattleCamera()
    {
        if (MainCamera_ == null)
        {
            Debug.LogError("MainCamera is null, InitBattleCamera Failed!");
            return;
        }
        CameraStatusType_ = CameraStatusType.Normal;
        CameraScaleType_  = CameraScaleType.Max;
        CameraInfo cameraInfo = GetCameraInfo(CameraStatusType_);
        float      positionY  = 0;
        float      rotationX  = 0;

        GetPositionY(CameraScaleType_, out positionY);
        GetRotationX(CameraScaleType_, out rotationX);
        cameraInfo.position = new Vector3(OriginPositionX, positionY, OriginPositionZ);
        cameraInfo.angles   = new Vector3(rotationX, OriginRotationY, 0);
        // 初始化位置和旋转为普通模式,并确认对应坐标
        Vector3    position   = GetBattleCameraOriginPosition();
        Quaternion rotation   = Quaternion.Euler(cameraInfo.angles);
        Vector3    tempTarget = new Vector3(cameraInfo.position.x, cameraInfo.position.y, position.z - NormalCameraZDistance);

        MainCamera_.transform.rotation = rotation;
        MainCamera_.transform.position = tempTarget;
    }
Esempio n. 4
0
    /// <summary>
    /// 通过相机状态得到对应的相机信息缓存
    /// </summary>
    /// <param name="type"></param>
    /// <returns></returns>
    private CameraInfo GetCameraInfo(CameraStatusType type)
    {
        if (type == CameraStatusType.NormalLerp)
        {
            type = CameraStatusType.Normal;
        }
        int temp = (int)type;

        if (CameraInfoList_[temp] == null)
        {
            CameraInfo tempInfo = new CameraInfo();
            CameraInfoList_[temp] = tempInfo;
            return(tempInfo);
        }
        return(CameraInfoList_[temp]);
    }
Esempio n. 5
0
    /// <summary>
    /// 初始化布阵相机
    /// </summary>
    public bool InitDepolyCamera()
    {
        bool succeed = false;

        if (MainCamera_ == null)
        {
            Debug.LogError("MainCamera is null, InitDepolyCamera Failed!");
            return(succeed);
        }
        CameraStatusType_  = CameraStatusType.AutoMoveInDeploy;
        CameraScaleType_   = CameraScaleType.Max;
        CameraTargetTrans_ = null;
        Vector3 originPos = GetDeployCameraOriginPostion();

        MainCamera_.transform.position         = new Vector3(originPos.x, originPos.y, originPos.z);
        MainCamera_.transform.localEulerAngles = new Vector3(DeployOriginRotationX, DeployOriginRotationY, DeployOriginRotationZ);
        succeed = true;
        return(succeed);
    }