Unity3d学习笔记Word文件下载.docx
- 文档编号:20698097
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:11
- 大小:15.17KB
Unity3d学习笔记Word文件下载.docx
《Unity3d学习笔记Word文件下载.docx》由会员分享,可在线阅读,更多相关《Unity3d学习笔记Word文件下载.docx(11页珍藏版)》请在冰豆网上搜索。
usingSystem.Collections;
publicenumCTRotationType
{
Uniform,
AccelerateUniformly
}
第二个文件:
主函数,实现围绕轴变化的两个函数,分别为均匀变化和加速变化
publicclassCTRotation:
MonoBehaviour{
//Usethisforinitialization
voidStart(){
//Updateiscalledonceperframe
voidUpdate(){
if(isRotating)
executeRotate();
boolisRotating=false;
QuaterniondefinedRotation=newQuaternion(0,0,0,0);
Vector3rotateVector=newVector3(1,0,0);
floatrotateVelocity=0;
floataccelerateDuration=0;
floatleftDuration=0;
floatrotateDuration=0;
introtateAxis=0;
floatangleRange=0;
floatdeltaRotate=0;
//0;
//accelerationwhenitisintheacceleratingprocess.
floatrotateAcceleration=0;
CTRotationTyperotateType;
//intRotateType=0;
privatevoidinitRotateArgument(float_initAngleRange,int_initRotateAxis,float_initRotateDuration)
rotateAxis=_initRotateAxis;
rotateDuration=_initRotateDuration;
leftDuration=_initRotateDuration;
angleRange=_initAngleRange;
rotateType=CTRotationType.Uniform;
publicvoidRotateTo(float_angleRange,int_axis,float_duration)
print(“intherotateto”);
isRotating=false;
//RotateType=0;
initRotateArgument(_angleRange,_axis,_duration);
switch(rotateAxis)
case0:
//rotatearoundXaxis
rotateVector=Vector3.right;
break;
case1:
//rotatearoundYaxis
rotateVector=Vector3.up;
case2:
//rotatearoundZaxis
rotateVector=Vector3.forward;
default:
deltaRotate=angleRange/rotateDuration;
isRotating=true;
publicvoidRotateTo(float_angleRange,int_axis,float_duration,float_accelerateDuration)
rotateType=CTRotationType.AccelerateUniformly;
//RotateType=1;
rotateAcceleration=1/((rotateDuration-accelerateDuration)*accelerateDuration);
accelerateDuration=_accelerateDuration;
//deltaRotate=angleRange/(_duration-_accelerateDuration*2);
voidexecuteRotate()
switch(rotateType)
//case0:
//CTMoveType.Uniform:
caseCTRotationType.Uniform:
uniformRotate();
//case1:
//CTMoveType.AccelerateUniformly:
caseCTRotationType.AccelerateUniformly:
accelerateRotate();
leftDuration-=Time.deltaTime;
/*if(leftDuration<
=0)
transform.position=targetPosition;
isMoving=false;
}*/
privatevoidaccelerateRotate()
print(leftDuration);
if(leftDuration>
(rotateDuration-accelerateDuration))
rotateVelocity=(float)((angleRange*(rotateDuration-leftDuration))*rotateAcceleration);
//transform.Rotate(rotateVelocity*Time.deltaTime*rotateVector,Space.World);
transform.Rotate(rotateVelocity*rotateVector*Time.deltaTime,Space.World);
elseif(leftDuration>
accelerateDuration)
rotateVelocity=(float)((angleRange*accelerateDuration)*rotateAcceleration);
transform.Rotate(rotateVelocity*rotateVector*Time.deltaTime,Space.World);
0)
rotateVelocity=(float)((angleRange*leftDuration)*rotateAcceleration);
else
privatevoiduniformRotate()
//if(leftDuration)
if(leftDuration>
transform.Rotate(rotateVector*deltaRotate*Time.deltaTime,Space.World);
//unity3d教程手册
//transform.Rotate(rotateVector*Time.deltaTime*deltaRotate,Space.World);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Unity3d 学习 笔记
![提示](https://static.bdocx.com/images/bang_tan.gif)