unity.day3

unity游戏对象的操作

控制游戏物体的移动

在场景中已经放置一个物体,创建好脚本绑定好

transform.position+=new Vector3(time.deltaTime*2f,0,0);

//改变物体在x轴方向上移动

 

transform.translate(Vector.right*Time.daltaTime*2f);

//同上,只是表达方式不同

但是物体会沿着自身的坐标系移动,不会沿着世界坐标系移动

transform.translate(Vector.right*Time.daltaTime*2f,Space.World);

//沿着世界坐标系移动

Vector target=new Vector3(3f,0,-4f);

transform.position=Vector3.Lerp(transform.position,target,Time.deltaTime);

//起始位置,目标位置,从起始位置移动到目标位置,并且移动的效果是先快后慢的效果

这是使用lerp方法的特点

transform.position=Vector3.MoveTowards(transform.position,target,Time.delTime);

//这个是匀速移动,起始位置到目标位置,把值给目标物体的意思

 

 

 

 

 

使用按键控制:

第一种是通过if语句分别实现方向的移动,但是操作起来太麻烦

第二中是通过虚拟轴的方法来实现

//使用WSAD来实现

float h=Input.GetAxis("Horizontal");//定义水平方向

float v=Input.GetAxis("Vertical");定义垂直方向

transform.Translate(Vector3.right*h*Time.deltaTime);

transform.Translate(Vector3.forward*v*Time.deltaTime);

//每秒一个单位的速度

 

 

实现物体旋转

同理,创建脚本并且绑定到游戏物体上

旋转:欧拉角、四元数

transform.eulerAngles//欧拉角

transform.rotation//四元数

//转化方法

transform.roration.eulerAngles//四元数转换成欧拉角,用.来实现

Quaternion.Euler(transform.eulerAngles);//欧拉角转成四元数

物体的旋转:

transform.Rotate(Vector3.up*Time.deltaTime*30);//游戏物体沿着y轴旋转30度

 

 

Quaternion q1=transform.rotation;//定义一个四元数的变量

Vector3 vd=new Vector3(0,5,0);//希望沿着y轴旋转5度

Quaternion q2=Quaternion.Euler(vd);//四元数转换成欧拉角

if(Input.GetKeyDown(KeyCode.R)){

transform.rotation=q1*q2;//按下R键实现功能,顺序不能错,q1是之前的

q2是希望旋转的度数

}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值