标签:rate tor use osi sample http www 1.5 code
static function LookRotation (forward : Vector3, upwards : Vector3 = Vector3.up) : Quaternion Description描述 Creates a rotation that looks along forward with the the head upwards along upwards 创建一个旋转,沿着forward(z轴)并且头部沿着upwards(y轴)的约束注视。也就是建立一个旋转,使z轴朝向view y轴朝向up。 Logs an error if the forward direction is zero. 如果forward方向是0,记录一个错误。
光看描述,是不是比较难理解。网上对这个方法的解释也挺多的,但是各说纷纭,没个简单明了的说法,更容易误导人。
1 //计算当前位置到下一个坐标点的向量 2 var vector = (posB - posA).normalized; 3 //取得向量的方向 4 var rotation = Quaternion.LookRotation(vector).eulerAngles; 5 //将物体旋转到指向下一个坐标点的方向 6 transform.rotation = Quaternion.Euler(0, rotation.y, 0); 7 //设置物体的坐标 8 transform.position = posB;
//相机的俯仰角和偏航角,Y方向偏航和目标对象一致 Quaternion ro = Quaternion.Euler(Pitch, transform.rotation.eulerAngles.y, 0);
var vector = Vector3.forward * Distance;
vector = ro * vector;
var pos = transform.position - vector;
CameraGo.transform.position = pos;
CameraGo.transform.rotation = ro;
1 //相机的俯仰角和偏航角,Y方向偏航和目标对象一致 2 Quaternion ro = Quaternion.Euler(Pitch, transform.rotation.eulerAngles.y, 0); 3 //给向量赋予旋转 4 var distanceVector = ro * Vector3.forward * Distance; 5 var pos = transform.position - distanceVector; 6 CameraGo.transform.position = pos; 7 CameraGo.transform.rotation = ro;
//delta就是围绕角色旋转的旋转角度0~360.
Quaternion ro = Quaternion.Euler(Pitch, transform.rotation.eulerAngles.y + delta, 0)
1 //角色移动 2 void SmoothMove() 3 { 4 Vector3[] vector3s = _transDataList;// CurvePath.PathControlPointGenerator(_transDataList); 5 int sample = _transDataList.Length * SampleRate; 6 7 _movePtg += Time.deltaTime * MoveSpeed; 8 9 //曲线插值 10 transform.position = CurvePath.Interp(vector3s, _movePtg / sample); 11 12 //计算当前位置到下一个坐标点的向量 13 var vector = (transform.position - _prevPos).normalized; 14 //取得向量的方向 15 var rotation = Quaternion.LookRotation(vector, Vector3.right).eulerAngles; 16 //去处x和z方向的影响,仅作用y方向偏转 17 rotation.x = 0; 18 rotation.z = 0; 19 20 //将物体旋转到指向下一个坐标点的方向 21 transform.rotation = Quaternion.Euler(rotation); 22 23 24 _prevPos = transform.position; 25 if (_movePtg >= sample) 26 { 27 ResetLocalData(); 28 } 29 } 30 31 //相机跟随 32 void FollowCamera() 33 { 34 if (CameraGo == null) return; 35 36 if(UseFollow != 0) 37 { 38 //相机的俯仰角和偏航角,Y方向偏航和目标对象一致 39 Quaternion ro = Quaternion.Euler(Pitch, transform.rotation.eulerAngles.y + Slider, 0); 40 41 //给向量赋予旋转 42 var distanceVector = ro * Vector3.forward * Distance; 43 var pos = transform.position - distanceVector; 44 CameraGo.transform.position = pos; 45 CameraGo.transform.rotation = ro; 46 return; 47 } 48 }
标签:rate tor use osi sample http www 1.5 code
原文地址:http://www.cnblogs.com/fishyu/p/6817231.html