Unity二维平面上物体的移动(三)

这篇具有很好参考价值的文章主要介绍了Unity二维平面上物体的移动(三)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在上一篇中使物体来回移动的函数主要是获取键盘操作输入的情况Input.GetKey(),然后物体朝着某一个方向移动gameObject.transform.Translate(Vector3.up*Time.deltaTime);
除了这个函数,可以用开发环境自带设置,Input.GetAxis(),然后使物体移动;

新建一个文件,命名为MovementOther.cs

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

public class MovementOther : MonoBehaviour
{

	public 	GameObject Player;
	public float m_speed=5f;
// Start is called before the first frame update
void Start()
{
    
}

// Update is called once per frame
void Update()
{
	float horizontal=Input.GetAxis("Horizontal");
	float vertical=Input.GetAxis("Vertical");
	Player.transform.Translate(Vector3.up * vertical * m_speed * Time.deltaTime);
	Player.transform.Translate(Vector3.right * horizontal * m_speed * Time.deltaTime);

}

}
Input.GetAxis()这个用法对应了开发环境中的Input Manager设置,在官方手册的Input Manager用法中描述为
The Input Manager window allows you to define input axes and their associated actions for your Project. To access it, from Unity’s main menu, go to Edit > Project Settings, then select Input Manager from the navigation on the right.如下:
Unity二维平面上物体的移动(三)
Unity二维平面上物体的移动(三)

这里面Horizontal,对应的是left和right,A/D键,Vertical对应的down和up,W/S键。当然,这里可以自己设置自己习惯的按键,用来替换环境默认设置好的按键。

将脚本赋给二维图形中的左面的圆形。

Unity二维平面上物体的移动(三)
运行一下,使用上下左右键来控制物体移动,能看出来物体在平面上流畅的移动。
这里使用了Vector3下的一些方法。
1、Vector3.back=(0,0,-1)
2、Vector3.forward=(0,0,1)
3、Vector3.left=(-1,0,0)
4、Vector3.right=(1,0,0)
5、Vector3.down=(0,-1,0)
6、Vector3.up=(0,1,0)
7、Vector3.zero=(0,0,0)
8、Vector3.one=(1,1,1)
二维平面我们使用left/right和up/down,在三维立体空间中我们引用back和forward代表Z轴移动。如果将
Player.transform.Translate(Vector3.up * vertical * m_speed * Time.deltaTime);
替换成
Player.transform.Translate(Vector3.forward * vertical * m_speed * Time.deltaTime);
演示一下能看出来圆形在水平方向上移动顺畅,但是在二维平面的垂直方向,移动不顺畅。那是因为在二维平面上forward代表的Z轴体现效果不明显,所以看着物体是不移动的,换做三维空间中能看到顺畅的移动。
Unity二维平面上物体的移动(三)
我们将灯泡图标旁边的2D点一下,让空间变成3D,然后执行程序,移动上下键,能看到物体在Z轴顺畅移动,Z轴是标蓝色的轴。按W键,圆形从远方移动到近距离处。见下图,从左面的三维空间能够看到圆形逐步变大,因为距离我们的视角是变近了。从右图能看到圆形在二维平面上只是较少的上移了一些,与右面的方形物体的水平面相比,可结合上一张图的右图来对比。

Unity二维平面上物体的移动(三)
总之,二维平面是三维空间的一部分,学好二维平面,在二维切换三维的过程中,原理是相通的,二维看到的效果可以和三维看到的效果做对比,更能反映空间成像效果。文章来源地址https://www.toymoban.com/news/detail-481330.html

到了这里,关于Unity二维平面上物体的移动(三)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Unity】摄像机跟随鼠标移动以物体为中心旋转 物体根据视线方向移动

    描述 实现摄像机根据鼠标移动跟随物体旋转,以摄像机前物体为中心,摄像机围绕物体旋转,并使摄像机时刻指向物体 实现效果 Unity 组件设置 Camera 组件设置 Body 组件设置 实现代码 CameraRotateMove.cs 摄像机跟随和旋转 move_better.cs 物体根据按键移动

    2024年02月08日
    浏览(57)
  • Unity中的物体移动

    局部坐标系(Transform.localPosition)是指当前物体相对于父物体的位置,会受到父物体的影响。 世界坐标系(Transform.Position)是指当前物体在世界空间坐标系中的位置,不受父物体影响。 若该物体有父类,则二者的关系为:该物体的世界坐标=该物体父类的世界坐标+该物体的局

    2024年02月03日
    浏览(42)
  • Unity 控制物体移动

    目录 1、通过改变物体的位置使物体移动 2、通过给物体施加力使物体移动 3、移动characterController以及碰撞检测 一、相关代码展示 1、通过改变物体的位置使物体移动 2、通过给物体施加力使物体移动 3、移动characterController 以及碰撞检测 注:使用时首先要给物体添加CharacterC

    2024年02月13日
    浏览(35)
  • unity 物体移动方法

        在Unity3D中,有多种方式可以改变物体的坐标,实现移动的目的,其本质是每帧修改物体的position。     Transform 组件用于描述物体在空间中的状态,它包括 位置(position), 旋转(rotation)和 缩放(scale)。 其实所有的移动都会导致position的改变,这里所说的通过Transform组件来移

    2024年02月12日
    浏览(27)
  • unity物体移动至指定位置

    在Unity中,物体的坐标分为 局部坐标 和 世界坐标 。 局部坐标是相对于物体的父对象的坐标系,而世界坐标是相对于场景的整体坐标系。 举个例子 将下面代码挂载到Sphere上 输出结果如下 如果想让物体运动到指定的位置,通常情况下是参考世界坐标系。因为世界坐标系是整

    2024年02月05日
    浏览(35)
  • Unity面向新手,如何使物体移动,让物体自由的动起来。几种移动方案讲解

    在大部分的Unity游戏开发中,移动是极其重要的一部分,移动的手感决定着游戏的成败,一个优秀的移动手感无疑可以给游戏带来非常舒服的体验。而Unity中有多种移动方法,使用Transform,使用刚体Rigidbody,使用CharacterController,使用NavMesh导航系统等等等等。当然,对于新手来

    2024年02月08日
    浏览(38)
  • 2d平面unity,鼠标点击某个位置,人物角色朝这个方向移动

    2d平面unity,鼠标点击某个位置,人物角色朝这个方向移动 如果我们没有将鼠标点击位置转换为世界坐标系中的位置,而是直接将屏幕坐标系中的位置作为角色移动的目标位置,那么可能会发生以下两种情况: 角色会偏离目标位置 由于屏幕坐标系中的位置和世界坐标系中的位

    2024年02月06日
    浏览(67)
  • Unity子物体脱离父物体,解除父子关系,子物体不随父物体移动

    在Unity中创建一个手雷,并且需求是扔出手雷时,手雷不能跟随人物移动          这个需要调用 gameObject.transform.DetachChildren方法,将GrenadePosition下的所有物体的父子关系解除,那么在扔手雷时,手雷就不会随着主角移动了

    2024年02月11日
    浏览(34)
  • 【Unity入门】物体5种移动方法

    利用修改Transform组件的position的两种常用方法。 使用Translate()函数 直接指定新的位置 将上述两种方法在 void Update()实现每一帧物体向x方向移动1.5个单位,具体代码如下: 注意:此处1.5为啥要写1.5f,根据C#的语法规定,直接写1.5会被认为double类型的数,而这里需要flaot类

    2024年02月02日
    浏览(28)
  • unity UI 跟随3D物体移动

     

    2024年02月11日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包