实现3D人物的移动和旋转。(Unity)

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

首先,需要在人物身上加刚体和碰撞器。

u3d实现人物移动playermove = playermove.normalized * movespeed * time.deltati,unity,游戏引擎

 如果需要人物身上有声音,可以添加AudioSource音频源。

u3d实现人物移动playermove = playermove.normalized * movespeed * time.deltati,unity,游戏引擎

 然后创建脚本,需要把脚本挂载到对应的对象身上。

u3d实现人物移动playermove = playermove.normalized * movespeed * time.deltati,unity,游戏引擎

如果有动画,还需要创建状态机添加到对应的对象上面,并且设置好里面的动画。

u3d实现人物移动playermove = playermove.normalized * movespeed * time.deltati,unity,游戏引擎

u3d实现人物移动playermove = playermove.normalized * movespeed * time.deltati,unity,游戏引擎


 代码实现:

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

public class PlayerMove : MonoBehaviour
{
    // Start is called before the first frame update

    //设置速度
    public float Speed = 6f;
    Rigidbody RigidbodyPlayer;
    Animator animatorPlayer;
    //偏移量
    Vector3 moveMent;
    //地板
    LayerMask floorMask;

    //Vector3 playerToMouse;

    void Awake()
    {
        //获取刚体
        RigidbodyPlayer = GetComponent<Rigidbody>();
        //获取动画
        animatorPlayer = GetComponent<Animator>();
        //获取地板
        floorMask = LayerMask.GetMask("floor");
    }

    // Update is called once per frame
    void FixedUpdate()
    {
        // -1  1
        float h = Input.GetAxisRaw("Horizontal");
        float v = Input.GetAxisRaw("Vertical");

        //移动 横向和纵向
        Move(h, v);

        //检测动画
        Animating(h, v);

        //角色旋转
        Turning();
    }
    void Move(float h, float v)
    {
        //设置方向
        moveMent.Set(h, 0f, v);
        moveMent = moveMent.normalized * Speed * Time.deltaTime;

        //通过刚体主键移动 对象
        RigidbodyPlayer.MovePosition(transform.position + moveMent);
    }
    void Animating(float h, float v)
    {
        if (h != 0 || v != 0)
        {
            animatorPlayer.SetBool("IsWaking", true);
        }
        else
        {
            animatorPlayer.SetBool("IsWaking", false);
        }
    }
    void Turning()
    {
        Ray cameraRay = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit cameraHit;
        if (Physics.Raycast(cameraRay, out cameraHit, 100f, floorMask))
        {
            Vector3 playerToMouse = cameraHit.point - transform.position;
            playerToMouse.y = 0f;
            //旋转 四元素
            Quaternion newQraternion = Quaternion.LookRotation(playerToMouse);

            //角色刚体旋转
            RigidbodyPlayer.MoveRotation(newQraternion);
        }
    }
}

图片实现:

 u3d实现人物移动playermove = playermove.normalized * movespeed * time.deltati,unity,游戏引擎

 

上面代码顺序不一样,可能会导致运行出错,如需要得进行完整性使用,才能保证项目正常运行。如出错请认真检查并且通过调整看看是否能达到效果。如有更好的方法,请在下方留言!谢谢你的观看!!!


----------------------------------------------------------END-----------------------------------------------------------------

 u3d实现人物移动playermove = playermove.normalized * movespeed * time.deltati,unity,游戏引擎文章来源地址https://www.toymoban.com/news/detail-766175.html

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

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

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

相关文章

  • U3D客户端框架之 音效管理器 与 Fmod介绍安装导入Unity

    Unity内置的Audio底层使用的是FMOD,但是功能不够齐全,高级一点的功能如混合(Mix)等无法使用; 音效管理应该和Unity工程解耦合,这样子可以减轻音效设计师的负担; 使用FMOD后,游戏中我们只需要关心sound event名字就可以了,对具体音效资源不会产生依赖; 目前FMOD支持Windo

    2024年02月02日
    浏览(47)
  • U3D面试汇总!!!

    ① 微软开发的一种 OOP 编程语言。专门用于.NET应用而开发。 ② 面向对象的 三大特征 (封装,继承,多态)。除了三大特征以外,C#还添加了 事件和委托 ,增强了编程的灵活性。 ③ 简单,安全 。C#不再使用指针,而且不允许直接读取内存等不安全操作。提供了相比C/C++,

    2023年04月08日
    浏览(55)
  • Unity骚操作:更改u3d导出apk时候所使用的 gradle、GradleTemplates、VisualStudioGradleTemplates、minifyEnabled是否开启混淆等

    测试unity版本:5.6.4 gradle文件夹:里面的是一些unity用自身打包apk时候用到的一些工具 GradleTemplates文件夹:    libTemplate.gradle  mainTemplate.gradle  settingsTemplate.gradle 附上让Unity自身打APK的时候 使用上镜像并且设置上 build:gradle通用工具让 需要生成AS工程的时候 可以让AS识别

    2024年02月14日
    浏览(52)
  • U3D热更新技术

    @作者 : SYFStrive @博客首页 : HomePage 📌: 个人社区(欢迎大佬们加入) 👉: 社区链接🔗 🤷‍♀️: 创作不易转发需经作者同意😈 💃: 程序员每天坚持锻炼💪 👉 U3D热更新技术 (🔥) 🕐:开发者将测试好的代码,发布到应用商店的审核平台,平台方会进行稳定性及性

    2024年02月02日
    浏览(51)
  • U3D客户端框架之支持断点续传的文件下载器实现方案

            文件下载器是应用程序的基础模块,为应用程序与外部网络交互提供了必要的桥梁。该模块设计初衷是为了热更新过程中,下载CDN站点上的文件资源,所以下载器会验证 要下载的文件是否存在于CDN中。如果存在允许下载器继续工作;如果不存在会跳过本地下载。

    2024年02月07日
    浏览(51)
  • 【U3D引擎】没有切换中文选项&切换中文模式?

    第一步,查看是否有勾选简体中文模块 第二步,拉到底部,勾选简体中文,点击继续 第三步,勾选已阅读同意后点击安装 第四步,等待下载安装完成 过程中会自动安装VS软件 如有下载失败可重新下载 注:如果重复提示错误也没有没有关系,直接略过就好, 第五步,随便打

    2024年02月06日
    浏览(68)
  • AVProVideo☀️一、一款U3D视频播放插件介绍

    🎊 商务合作:https://skode.cn/file/businesscard/wechat.jpg 🎥 本文由 星河造梦坊公司官方 原创! 🏅 如果你有技术问题或项目开发,都可以加上方的联系方式,和我聊一聊你的故事🧡 前段时间看到有人问: 橙哥,AVProVideo支持8K全景视频嘛? 看来,好多人对这款插件的支持的功能

    2024年02月07日
    浏览(46)
  • 三维引擎基础概述(Direct3D、OpenGL、UE、U3D、threejs等)

    一般而言,三维引擎是在三维底层图形技术的基础上,封装硬件操作与三维图形算法,形成普遍意义上的三维交互引擎,提供给开发者一个简单易用、功能丰富的三维图形环境,在此基础上进行虚拟现实、三维交互、可视化管理平台二次开发等,极大提高开发效率。 【底层图

    2024年02月11日
    浏览(43)
  • 用Unity3D制作FPS游戏的学习笔记————人物移动、利用鼠标实现视角转动和人物跳跃(含人物悬空不掉落修复)

    前言: 这是我第一次发布文章,此文章仅供参考,我也是刚学习接触untiy,在制作项目的过程中将有用的写下来记一记,以便自己之后能回头看看,各位大佬轻点喷,若有错误请麻烦积极提谢谢各位。该文章参考自B站UP主蔡先森_rm-rf发布的 【第一人称射击游戏教程2.0【已完结

    2024年04月27日
    浏览(62)
  • U3D游戏角色血条制作并显示血量变化

    关键:利用Slider来制作血条 大概效果: 数字会随着血量变化而变化。 步骤 1、在层级面板中右击,选择UI中的Slider. 2、创建好后,将Slider命名为HealthBar,可以看到层级面板中Slider的结构为,删掉其中的“Handle Slide Area”. 3、在层级面板选中HealthBar,在右侧的检查器窗口可以看到

    2024年02月09日
    浏览(42)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包