美文网首页U3D技术采集Unity基础
Unity3D 控制物体移动、旋转、缩放

Unity3D 控制物体移动、旋转、缩放

作者: 游戏开发小Y | 来源:发表于2017-01-19 17:15 被阅读89次

Transform基本移动函数:

1.指定方向移动:

//移动速度 
float TranslateSpeed = 10f;

//Vector3.forward 表示“向前”
transform.Translate(Vector3.forward *TranslateSpeed);

2.全方向移动:

//x轴移动速度移动速度 
float xSpeed = -5f;

//z轴移动速度移动速度 
float  zSpeed = 10f;

//向x轴移动xSpeed,同时想z轴移动zSpeed,y轴不动 
transform.Translate(xSpeed,0,zSpeed);

3.重置坐标:

//x轴坐标 
float xPostion = -5f;
//z轴坐标 
float zPostion = 10f;
//直接将当前物体移动到x轴为xPostion,y轴为0,z轴为zPostion的三维空间位置。
transform.position = Vector3(xPostion,0,zPostion);

输入控制:

1.输入指定按键:

//按下键盘“上方向键”
if(Input.GetKey ("up"))
  print("Up!");

//按下键盘“W键”
if(Input.GetKey(KeyCode.W);)
  print("W!");

2.鼠标控制

//按下鼠标左键(0对应左键 , 1对应右键 , 2对应中键) 
if(Input.GetMouseButton(0))
  print("Mouse Down!");
Input.GetAxis("Mouse X");//鼠标横向增量(横向移动) 
Input.GetAxis("Mouse Y");//鼠标纵向增量(纵向移动)

3.获取轴:

//水平轴/垂直轴 (控制器和键盘输入时此值范围在-1到1之间)
Input.GetAxis("Horizontal");//横向 
Input.GetAxis ("Vertical");//纵向

按住鼠标拖动物体旋转和自定义角度旋转物体:

float speed = 100.0f;
float x;
float z;

void Update () {
  if(Input.GetMouseButton(0)){//鼠标按着左键移动 
    y = Input.GetAxis("Mouse X") * Time.deltaTime * speed;               
    x = Input.GetAxis("Mouse Y") * Time.deltaTime * speed; 
  }else{
    x = y = 0 ;
  }
  
  //旋转角度(增加)
  transform.Rotate(new Vector3(x,y,0));
  /**---------------其它旋转方式----------------**/
  //transform.Rotate(Vector3.up *Time.deltaTime * speed);//绕Y轴 旋转 

  //用于平滑旋转至自定义目标 
  pinghuaxuanzhuan();
}


//平滑旋转至自定义角度 

void OnGUI(){
  if(GUI.Button(Rect(Screen.width - 110,10,100,50),"set Rotation")){
    //自定义角度

    targetRotation = Quaternion.Euler(45.0f,45.0f,45.0f);
    // 直接设置旋转角度 
    //transform.rotation = targetRotation;

    // 平滑旋转至目标角度 
    iszhuan = true;
  }
}

bool iszhuan= false;
Quaternion targetRotation;

void pinghuaxuanzhuan(){
  if(iszhuan){
    transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, Time.deltaTime * 3);
  }
}

相关文章

  • Unity3D 控制物体移动、旋转、缩放

    Transform基本移动函数: 1.指定方向移动: 2.全方向移动: 3.重置坐标: 输入控制: 1.输入指定按...

  • 34three.js TransformControls

    TransformControls.js可以控制物体的移动旋转缩放等操作。使用也比较简单。 引入js文件 创建控制...

  • 无标题文章

    刚刚发现了一个UNITY3D中物体移动比较齐全的方法,借鉴的,希望对大家都有所帮 unity3d中控制物体移动方法...

  • 移动端单指实现旋转、双指头实现缩放物体

    方法一:相机围绕3D物体旋转,相机的拉近拉远实现旋转与缩放 方法二:3D物体的旋转与缩放

  • UE4材质中的World Position Offset

    World Positon Offset的作用 材质中的这个属性,修改顶点的位置,可以让物体移动、旋转、缩放,等等...

  • 基础操作

    alt 搭配鼠标左、右、中键来对物体进行旋转、缩放、移动。中键在单窗口与四窗口间切换 shift+v 来对物体显示...

  • C4D知识点总结

    1.物体的旋转、缩放和位移 旋转:快捷键R 缩放:快捷键T 位移:快捷键E 快速找到当前物体:快捷键H 物体和世界...

  • Blender建模技巧-来自《blenderCN-综合实例》

    1.游标处创建物体,游标归原点Shift+C。Shift+A添加物体。 2.G移动,S缩放,R旋转,可结合XYZ锁...

  • 01.父子关系与图解视图

    父子关系是机械角色动画的根本 父子关系:父物体的基本操作(变换)会影响子物体,即:移动、旋转和缩放。 添加父子关系...

  • UIView的transform属性及使用案例

    transform属性作用:给我们的控件做一些形变,(平移,缩放,旋转)移动 缩放 旋转

网友评论

    本文标题:Unity3D 控制物体移动、旋转、缩放

    本文链接:https://www.haomeiwen.com/subject/shbibttx.html