Example #1
0
    public override void CopyFrom(BlendData target)
    {
        CameraRigBlendData t = (CameraRigBlendData)target;

        LocalPosition = t.LocalPosition;
        LocalRotation = t.LocalRotation;
        FovRatio      = t.FovRatio;
    }
Example #2
0
    public override void CaculateAdd(BlendData lhs, BlendData rhs)
    {
        CameraRigBlendData l = (CameraRigBlendData)lhs;
        CameraRigBlendData r = (CameraRigBlendData)rhs;

        LocalPosition = l.LocalPosition + r.LocalPosition;
        LocalRotation = l.LocalRotation * r.LocalRotation;
        FovRatio      = l.FovRatio + r.FovRatio;
    }
Example #3
0
    public override void CaculateLerp(BlendData from, BlendData to, float lerpRatio)
    {
        CameraRigBlendData f = (CameraRigBlendData)from;
        CameraRigBlendData t = (CameraRigBlendData)to;

        LocalPosition = Vector3.Lerp(f.LocalPosition, t.LocalPosition, lerpRatio);
        LocalRotation = Quaternion.Lerp(f.LocalRotation, t.LocalRotation, lerpRatio);
        FovRatio      = Mathf.Lerp(f.FovRatio, t.FovRatio, lerpRatio);
    }
Example #4
0
    // Update is called once per frame
    void Update()
    {
        // 1,设置各个blend node中的weight
        _root.CurrentWeight            = Weight_Root;
        _fix.CurrentWeight             = Weight_Fix;
        _normalPositions.CurrentWeight = Weight_NormalPositions;

        // 2,从tree获得result。
        CameraRigBlendData data = BlendTree.GetResult() as CameraRigBlendData;

        Camera.transform.localPosition = data.LocalPosition;
        Camera.transform.localRotation = data.LocalRotation;
        Camera.fieldOfView             = data.FovRatio * 60;

//		Debug.Log(data.LocalPosition + "  " + data.LocalRotation.eulerAngles + "  " + data.FovRatio);
    }
Example #5
0
 void Awake()
 {
     _cached = new CameraRigBlendData();
 }