Unity 3D基本的移动操作

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

一、使用transform组件进行移动

transform组件是每一个游戏物体自带的组件,它表示的是Object的外在改变,里面的属性如图所示:

Unity 3D基本的移动操作

 Position-->Object的位置.  Rotation-->对Object进行旋转. Scale-->对Object进行缩放

而且Transform组件有很多内置方法,比如这次移动用到的就是--Translate方法.

实例代码如下:

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

public class move2 : MonoBehaviour
{

    public float moveSpeed;
    private float x_direction;
    private float z_direction;
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        x_direction = Input.GetAxis("Horizontal");
        z_direction = Input.GetAxis("Vertical");
        this.transform.Translate(x_direction * moveSpeed, 0, z_direction * moveSpeed);
    }
}

这样就可以实现一个简单的Object移动.Translate里面的可以是一个三维向量当作参数.

二、使用Rigidbody组件进行移动

Unity 3D基本的移动操作

Mass-->质量.   Drag-->阻力.   Angular Drag-->角阻力.   Use Gravity-->重力模式.  

Is Kinematic --> 是一种很自由的运动,抛开重力 

关于Interpolate和Collision Detection 笔者也没有用过,所以无法告知大家了.有大佬会的麻烦在评论区告诉我一声呗..

Constraints-->约束...下面分别是冻结位置和冻结旋转.

那么我们怎么使用Rigidbody来控制物体移动呢?    简单!!!!!

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

public class move2 : MonoBehaviour
{
    private Rigidbody rb;
    public float moveSpeed;
    private float x_direction;
    private float z_direction;
    // Start is called before the first frame update
    void Start()
    {
        rb = GetComponent<Rigidbody>(); 
    }

    // Update is called once per frame
    void Update()
    {
        x_direction = Input.GetAxis("Horizontal");
        z_direction = Input.GetAxis("Vertical");
        rb.velocity = new Vector3(x_direction * moveSpeed, 0, z_direction * moveSpeed);        
    }
}

我们利用的是Rigidbody.velocity这个属性,这个属性可以获取当前Object的速度.只需要创建一个矢量单位,并且根据输入操作判断方向,就可以实现Object在这个方向移动.文章来源地址https://www.toymoban.com/news/detail-467434.html

三、利用鼠标控制移动

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

public class move2 : MonoBehaviour
{

    Vector3 tempPoint = new Vector3(0, 0, 0);

    // Start is called before the first frame update
   

    // Update is called once per frame
    void Update()
    {
        PlayerMove_FollowMouse();
    }

    private void PlayerMove_FollowMouse()
    {
        if(Input.GetMouseButtonDown(1))
        {
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hitInfo;
            if (Physics.Raycast(ray, out hitInfo))
            {
                tempPoint = hitInfo.point;
            }
        }
        float step = 10 * Time.deltaTime;
        this.transform.localPosition = Vector3.MoveTowards(this.transform.localPosition, tempPoint, step);
        this.transform.LookAt(tempPoint);

        

    }
}

 行啦,笔者不才.目前还是一个新手会的移动控制只有这么多了

如果对您有所帮助,请关注一下吧........

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

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

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

相关文章

  • 【Unity3D】3D 视图操作 ( 视图基本元素 | 导航器 | 栅格 | 天空盒 | 3D 视图操作 | 视图旋转 | 视图缩放 | 视图平移 | 导航器操作 | 恢复方向 | 顶、右、前视图 )

    在 Scene 场景窗口 中 , 右上角的 是 \\\" 导航器 Gizmo \\\" , 导航器 相当于 指南针 , 表明了当前的 场景世界坐标的方向 ; 在 Scene 场景窗口 中的 格子 , 称为 \\\" 栅格 Grid \\\" , 表示的是当前 X 轴 和 Z 轴 所在的坐标平面 , 相当于大地地面 , 水平面 ; Y 轴是向上的 , 垂直与地面 , 指向天空 ;

    2024年02月05日
    浏览(41)
  • Unity解决:3D开发模式第三人称视角 WASD控制角色移动旋转 使用InputSystem

    Unity版本:2019.2.3f1 目录  安装InputSystem 1:创建InputHander.cs脚本 挂载到Player物体上 获取键盘输入WADS 2.创建PlayerLocomotion.cs挂载到Player物体上,控制物体移动转向   菜单栏/Window/Package Manager/Input System  工程面板内 右键--创建Input Actions  选中New Controls改名为PlayerControls 然后属

    2024年02月06日
    浏览(51)
  • 【Unity3D】游戏物体操作 ③ ( 旋转操作 | 旋转工具 | 基本旋转 | 设置旋转属性 | 增量旋转 | 缩放操作 | 轴向缩放 | 整体缩放 | 操作工具切换 | 操作模式切换 )

    选中 Scene 场景 中的 游戏物体 GameObject , 点击 工具栏 中的 转换工具 , 此时在该 游戏物体 会被 4 个 圆圈 环绕 ; 红圈 : 拖动该圈 , 绕 X 轴旋转 ; 绿圈 : 拖动该圈 , 绕 Y 轴旋转 ; 蓝圈 : 拖动该圈 , 绕 Z 轴旋转 ; 最外层还有一个 白圈 ; 鼠标左键按住旋转 : 在 Unity 旋转 游戏物体

    2023年04月08日
    浏览(66)
  • 【unity3D】Dropdown组件 — 如何使用下拉菜单

    💗 未来的游戏开发程序媛,现在的努力学习菜鸡 💦本专栏是我关于游戏开发的学习笔记 🈶本篇是unity的Dropdown组件 介绍:Unity的Dropdown组件是一种UI控件,用于在下拉列表中显示选项或选项组。它允许用户从列表中选择一个选项,并可以在选择时触发特定的行为或事件。通

    2024年02月06日
    浏览(62)
  • Unity UGUI使用Text组件位图字体进行自适应大小

    1.首先我们需要把位图字体导入到unity中,然后利用插件转化一下 我使用的是BMFont 2.然后我们就可以看到生成了四个文件,其中我们主要注意的是.fontsettings文件, 我们主要修改的就是 Character Rect里面的各个参数,至于具体是什么 ,大家有兴趣的可以去搜索, 好了 我们直接上代码 把

    2024年02月05日
    浏览(50)
  • TransFusion:利用 Transformer 进行鲁棒性融合来进行 3D 目标检测

    Input-dependent 以往 Query 位置是随机生成或学习作为网络参数的,而与输入数据无关,因此需要额外的阶段(解码器层)来学习模型向真实对象中心移动的过程。 论文提出了一种基于center heatmap 的 input-dependent 初始化策略。(decoder :6 layers — 1 layer) 给定一个 d d d 维的 LiDAR

    2024年02月11日
    浏览(51)
  • unity 之Transform组件(汇总)

    当在Unity中处理3D场景中的游戏对象时, Transform 组件是至关重要的组件之一。它管理了游戏对象的位置、旋转和缩放,并提供了许多方法来操纵和操作这些属性。以下是关于 Transform 组件的详细介绍: 位置(Position): Transform 组件的 position 属性表示游戏对象在世界坐标系中

    2024年02月04日
    浏览(44)
  • 【Unity3D脚本】Transform类

    欢迎大家学习指正 目录 一、Transform类简介 二、个别核心功能介绍 1.查找变换组件  2.改变位置、角度 1.缩放 2.移动 3.旋转  4.设置父物体  总结 一、Transform类简介 Transform类提供了查找(父、根、子)变换组件、改变位置、角度、大小功能 场景中的每一个对象都有一个Trans

    2024年02月16日
    浏览(45)
  • VoxPoser:使用语言模型进行机器人操作的可组合 3D 值图

    语言是一种压缩媒介,人们通过它来提炼和传达他们对世界的知识和经验。大型语言模型(LLMs)已成为一种有前景的方法,通过将世界投影到语言空间中来捕捉这种抽象。虽然这些模型被认为在文本形式中内化了可概括的知识,但如何利用这种可概括的知识使具身代理能够在

    2024年02月03日
    浏览(47)
  • 第十二章 Unity Transform组件(下)

    上一章节中我们介绍了Transform组件的属性和方法。我们发现 Transform 中有right,up和forward,而 Vector3 类中也有right,up和forward,他们是一回事嘛?我们使用Forward来说明两者之间的区别。我们知道,改变游戏对象的position位置,就可以形成移动效果。如果我们让游戏对象沿着for

    2024年02月04日
    浏览(40)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包