【Unity3D 灵巧小知识点】☀️ | Unity 移动物体到指定位置的几种方法【精选快捷使用】

简介: Unity 小科普老规矩,先介绍一下 Unity 的科普小知识:Unity是 实时3D互动内容创作和运营平台 。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。

Unity小知识点学习

Unity 移动物体到指定位置的几种方法【精选快捷使用】

在Unity中移动物体的方法有好几种,下面是精选的几种可直接使用的便捷方法

不管是移动3D游戏对象还是2D UI都可以使用哦!

方法一:使用Vector3自带的API方法移动

public float Speed=5;
void Update(){
//将某个物体的本地坐标移动到(0, 0, 100)位置,速度为2
gameObject.transform.localPosition = Vector3.MoveTowards(gameObject.transform.localPosition, new Vector3(0, 0, 100), Speed*Time.deltaTime());
}

上述代码是将gameObject的本地坐标transform.localPosition,变成一个我们赋予的新坐标new Vector3(0, 0, 100),按照我们设置的一个float的速度进行移动

使用该代码效果如下:1.gif

方法二:使用Lerp插值运算

    public float Speed = 5f;
    void Update()
    {
        gameObject.transform.localPosition = new Vector3(Mathf.Lerp(gameObject.transform.localPosition.x, 20, Speed * Time.deltaTime), Mathf.Lerp(gameObject.transform.localPosition.y, 5, Speed * Time.deltaTime),0);
    }

插值运算的特点是,游戏对象移动时不是匀速的,而是变速运动,会由快而慢,最后一部分数值甚至会一直都达不到!

例如上述代码就是将某个游戏对象 使用插值运算移动到(20,5,0)

效果如下:1.gif

方法三:使用DoTween插件移动物体

DoTween作为Unity中最常用的几种插件之一 作用可大了去了,这里只是演示最基本的物体移动方法

首先,需要再工程中导入DoTween插件才可以使用

1)改变世界坐标

        //移动方法,第一个参数是要移动到的目标点,不是移动这个向量的距离
        transform.DOMove(new Vector3(1, 1, 1), 2);
        只控制x轴上的移动,其他两个方向同理
        transform.DOMoveX(1, 2);

2)改变局部坐标

//移动方法,第一个参数是要移动到的目标点,不是移动这个向量的距离
    transform.DOLocalMove(new Vector3(1, 1, 1), 2);
    transform.DOLocalMoveX(1, 2);

方法四:使用协程 IEnumerate

    public float Speed = 5f;
    private void Start()
    {
        StartCoroutine(MoveToPosition());
    }
    IEnumerator MoveToPosition()
    {     
        while (gameObject.transform.localPosition != new Vector3(20, 5, 0))
        {
            gameObject.transform.localPosition = Vector3.MoveTowards(gameObject.transform.localPosition, new Vector3(20, 5, 0), Speed * Time.deltaTime);
            yield return 0;
        }
    }

这种方法其实就是第一种方法的实现,只不过使用在了协程里面。

先启动协程,然后使用Vector3.MoveTowards,将游戏对象移动到我们指定的位置即可!

效果如下:1.gif

相关文章
|
4月前
|
语音技术 开发工具 图形学
Unity与IOS⭐一、百度语音IOS版Demo调试方法
Unity与IOS⭐一、百度语音IOS版Demo调试方法
|
4月前
|
前端开发 图形学
Unity精华☀️UI和物体可见性的判断方法
Unity精华☀️UI和物体可见性的判断方法
|
4月前
|
图形学 C# 开发者
全面掌握Unity游戏开发核心技术:C#脚本编程从入门到精通——详解生命周期方法、事件处理与面向对象设计,助你打造高效稳定的互动娱乐体验
【8月更文挑战第31天】Unity 是一款强大的游戏开发平台,支持多种编程语言,其中 C# 最为常用。本文介绍 C# 在 Unity 中的应用,涵盖脚本生命周期、常用函数、事件处理及面向对象编程等核心概念。通过具体示例,展示如何编写有效的 C# 脚本,包括 Start、Update 和 LateUpdate 等生命周期方法,以及碰撞检测和类继承等高级技巧,帮助开发者掌握 Unity 脚本编程基础,提升游戏开发效率。
107 0
|
4月前
|
C# 图形学 数据安全/隐私保护
Unity数据加密☀️反射的用法:变量、属性、方法、重载,反射在DLL中的使用方法
Unity数据加密☀️反射的用法:变量、属性、方法、重载,反射在DLL中的使用方法
|
4月前
|
C# 图形学 C语言
Unity3D学习笔记3——Unity Shader的初步使用
Unity3D学习笔记3——Unity Shader的初步使用
51 0
|
4月前
|
存储 Java 图形学
UNITY性能优化☀️一、GC介绍与Unity内存管理方法
UNITY性能优化☀️一、GC介绍与Unity内存管理方法
|
6月前
|
图形学 索引
【制作100个unity游戏之25】3D背包、库存、制作、快捷栏、存储系统、砍伐树木获取资源、随机战利品宝箱4(附带项目源码)
【制作100个unity游戏之25】3D背包、库存、制作、快捷栏、存储系统、砍伐树木获取资源、随机战利品宝箱4(附带项目源码)
127 2
|
6月前
|
图形学 开发者
【Unity小技巧】unity移动物体的探究——使用8个不同方法
【Unity小技巧】unity移动物体的探究——使用8个不同方法
261 1
|
6月前
|
图形学
【制作100个unity游戏之25】3D背包、库存、制作、快捷栏、存储系统、砍伐树木获取资源、随机战利品宝箱10(附带项目源码)
【制作100个unity游戏之25】3D背包、库存、制作、快捷栏、存储系统、砍伐树木获取资源、随机战利品宝箱10(附带项目源码)
62 1