unity物体移动三种方式之——Transform.Translate

  在unity中,经常遇到的一个问题就是物体移动的问题,Unity引擎给出了很多种解决方案,这里先给大家介绍一种——Transform.Translate函数。


  在Unity中这是最基础的一种物体移动的方式之一,物体会按照你给的速度方程移动。


  首先,我们先创建一个场景,加入一个Terrain或者是Plane,这里我加的是Terrain,为了美观,我在Terrain上刷了一层草地,绘制了一个小山包,然后添加一个Sphere,作为我们要移动的对象。新建一个脚本move.cs,绑定到脚本上,并在vs中打开:
 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class move : MonoBehaviour {

    // Use this for initialization
    void Start () {

    }

    // Update is called once per frame
    void Update () {
        //使小球按照y轴正方向以每帧1的单位长度移动
        transform.Translate(Vector3.up * Time.deltaTime, Space.World);

    }
}

效果图:

这里写图片描述

  transform.Translate()函数中,前一个变量是物体的移动速度,这里的速度是一个矢量,既包含大小写包含方向,后一个变量是相对坐标系,这里的相对坐标系有两个值,一个是世界坐标,一个是自身坐标,如果第一个坐标不填写的话,默认为自身坐标系。这里我们将坐标体系修改为自身坐标系看一下效果:
 

transform.Translate(Vector3.up * Time.deltaTime, Space.Self);

 这里写图片描述

 这里我为了看到效果,将小球按照x轴旋转了90°。


  我们还可以这样:

transform.Translate(new Vector3 (1,1,1) * Time.deltaTime, Space.World);

 这里写图片描述

  通过这个函数,我们可以将控制物体按照任何方向进行移动 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值