unity通过Transform控制游戏对象的变换(动作)

一、游戏开始时对象的变换

//当前游戏对象的世界坐标
        //Debug.Log(transform.position);

        //当前游戏对象相对于父物体的游戏坐标【本地坐标】
        Debug.Log(transform.localPosition);

        //当前游戏对象的世界旋转
        Debug.Log(transform.eulerAngles);

        //当前游戏对象相对于父物体的游戏旋转【本地旋转】
        Debug.Log(transform.localEulerAngles);

        //当前游戏对象的世界旋转[四元数]
        Debug.Log(transform.rotation);

        //当前游戏对象相对于父物体的游戏旋转【四元数】
        Debug.Log(transform.localRotation);

        //当前游戏对象的世界缩放
        Debug.Log(transform.localScale);

        //位置移动方法
        transform.Translate(new Vector3(3, 0, 0)); 

二、.游戏进行中对象的变换

1.游戏对象朝着一个方向进行持续前进

以持续向右边每秒移动0.3f,以下有两种方法来执行

//持续向右边每秒移动0.3f
     transform.Translate(new Vector3(0.05f,0,0));
     transform.position += new Vector3(0, 0, 0.03f);

如果需要选择其他位置的,只需要在Vector3内根据您的需求修改x,y,z的值即可,其中x,y,z为float类型,需要在数字后面添加f。

2.游戏对象的旋转,分为两个部分,一个部分是游戏对象自转,一个部分是一个游戏对象环绕着另外一个游戏对象进行旋转。

2.1自转,(分别采用两种方法执行)案例代码如下

//旋转【自转】
     transform.Rotate(new Vector3(1, 0, 0));         //方法一
     transform.eulerAngles += new Vector3(2, 0, 0);  //方法二

2.2旋转【绕转】代码如下

transform.RotateAround(new Vector3(1, 0, 0),new Vector3(0,1,0), rotateSpeed);

其中在RotateAround中第一个是该游戏对象的环绕的点,第二个是游戏对象环绕着轴,第三个是绕转的度数

3.让当前对象朝自己的角度方位移动,自身前方的方向向量

该案例是沿着向上的方向移动,需要其他方向的可以进行修改

把transform.up改成.forwalk即向前/.right即向右

自身前方的方向向量
   transform.position += transform.up * 0.02f*moveSpeef;      //方法一
   transform.position += transform.up * 0.02f * moveSpeef;   //方法二

4.让当前对象看向某个目标[球]

transform.LookAt(ball.transform.position);

ball为在脚本中创建的一个对象名,该案例中可实现在脚本运行中,通过移动ball,当前对象会跟着ball的移动而旋转。

以上是小编在学习过程中总结出来的一些通过Transform使游戏对象发生变换的方法。还有补充与不足请留言讨论,虚心请教。如果能够帮助的到您也请留个小赞。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值