当前位置: 首页 > news >正文

Unity3D 创建一个人物,实现人物的移动

1,创建项目

首先打开我们的Unity Hub

在我们的编译器下面新建项目,选择3D模板,更改一下我们的项目名称,选择一下路径,然后点击创建项目

等待项目创建。。。。。。

我们在项目里先创建一个plane,这样有点视觉体验

点击Wnidows --> Asset Store。搜索:Character Pack: Free Sample

点击添加至我的资源,在Unity中打开

回到我们的Unity就会弹出一个模态框,点击import

(因为我之前就已经下载过这个,你们应该会有一个DownLoad,点击下载即可,如果下载出现问题就重新再下载一遍就好了) 

点击import

我们就可以看到我们Assets里面就出现我们下载的包

跟随我的目录找到人物模型

我们将人物拖拽到Scene界面即可

开始添加人物动画

在Assets界面右键鼠标,选择Create,选择Animation,更改一下名字为Move

将创建好的动画控制器Animation,添加到我们人物上面

点击状态机界面,就会有我们刚才创建的了

在Assets界面右键鼠标,选择Create,选择C# Script,我们将这个代码名字命名为Move

点击刚刚创建好的人物,把我们创建好的C#代码拖拽进去

跟随我的目录,找到资源动画

这个Idle就是人物待机动画,这个Run就是我们人物跑起来时的动画

我们将Idle 和 Run拖拽到我们的状态机里面,把我们刚才的Move删除,右键 idle,选择Make Transition,连接到我们的run,同理右键run,连接到idle

选择一下我们要配置的参数,选择bool类型,更改一下名字为isRun

点击我们idle到run的小箭头,改成我这个样子(从idle到run是true)

同理点击run到idle的箭头,更改一下属性(从run到idle是false)

点击动画控制器,将控制器拖拽到Controller上面

双击我们创建好的C#代码,将这串代码复制上去。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class CharacterControl : MonoBehaviour
{private CharacterControl _character;private Animator animator;// Start is called before the first frame updatevoid Start(){_character = GetComponent<CharacterControl>();animator = GetComponent<Animator>();}// Update is called once per framevoid Update(){float horizontal = Input.GetAxis("Horizontal");float vertical = Input.GetAxis("Vertical");Vector3 dir = new Vector3(horizontal, 0, vertical);if (dir != Vector3.zero){transform.rotation = Quaternion.LookRotation(dir);animator.SetBool("isRun", true);transform.Translate(Vector3.forward * 2 * Time.deltaTime);}else{animator.SetBool("isRun", false);}}
}

运行!

相关文章:

  • springboot+大数据基于数据挖掘的招聘信息可视化大屏系统【内含源码+文档+部署教程】
  • 大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
  • RocksDB Compaction的常见问题
  • uni-app进行微信小程序开发,快速上手
  • 使用docker形式部署prometheus+alertmanager+钉钉告警
  • 从画质设置看游戏引擎(其一)
  • 【ESP 保姆级教程】小课设篇 —— 案例:20231217_基于ESP8266的光照智能小灯
  • Mac使用brew安装软件报错
  • bluefs _flush_range allocated: osd用空间但是显示ceph_bluefs_db_used_bytes is 100%
  • 2024前端技术发展概况
  • 服务器使用frp做内网穿透详细教程,请码住
  • 删除搜狗拼音输入法,右键菜单打印及pdf操作
  • Spring MVC 参数校验 总结
  • Matlab实现鲸鱼优化算法优化回声状态网络模型 (WOA-ESN)(附源码)
  • 在pycharm中怎样调试HTML网页程序
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • Android组件 - 收藏集 - 掘金
  • Bytom交易说明(账户管理模式)
  • docker python 配置
  • git 常用命令
  • input实现文字超出省略号功能
  • Javascript弹出层-初探
  • laravel with 查询列表限制条数
  • Mybatis初体验
  • spring boot下thymeleaf全局静态变量配置
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 基于遗传算法的优化问题求解
  • 记一次删除Git记录中的大文件的过程
  • 学习笔记TF060:图像语音结合,看图说话
  • ​​​​​​​STM32通过SPI硬件读写W25Q64
  • ​MySQL主从复制一致性检测
  • # linux 中使用 visudo 命令,怎么保存退出?
  • ######## golang各章节终篇索引 ########
  • #07【面试问题整理】嵌入式软件工程师
  • #图像处理
  • (二)linux使用docker容器运行mysql
  • (分享)自己整理的一些简单awk实用语句
  • (回溯) LeetCode 46. 全排列
  • (面试必看!)锁策略
  • (四)进入MySQL 【事务】
  • (贪心) LeetCode 45. 跳跃游戏 II
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .NET MVC之AOP
  • [ Linux ] git工具的基本使用(仓库的构建,提交)
  • [1204 寻找子串位置] 解题报告
  • [2017][note]基于空间交叉相位调制的两个连续波在few layer铋Bi中的全光switch——
  • [2019.2.28]BZOJ4033 [HAOI2015]树上染色
  • [3]Opengl ES着色器
  • [AI aider] 打造终端AI搭档:Aider让编程更智能更有趣!