【截图整理官方教程】unity 2D角色控制器 2D Character Controller
来源:互联网 发布:淘宝直播自我介绍文字 编辑:程序博客网 时间:2024/05/22 08:20
原视频
unity2D角色控制器教程(基于untiy5修改)
1.新建一个空对象Create Empty 命名为Character
添加 Sprite renderer 精灵渲染器
这个截图是我的5.5.2f1版本的
添加 Rigidbody 2D 2D刚体组件
2.精灵序列图
导入后设置
点击Sprite Editor,如果选择Automatic ,点击Slice后,将自动根据透明度切出精灵
这里我们设置想要的大小:选择类型为Grid , 大小为275X275像素,点击Slice
添加两个碰撞器
3.动画状态机
在Assets下右键创建一个动画控制器 Animator controller,命名为RobotController
拖动赋给Character的Animation组件的Controller参数
打开动画编辑器Animation和动画状态机Animator(5.5.2f1的截图)
那个24看自己的精灵帧数调。
给状态机增加参数
(5.5.2f1位置有点不同)
右键增加转换线
试了下怎么删除线,是点击后,在右边的小减号那里删
在右边设置,如图,意思是当speed(前面新建的参数)Greater(大于)0.01时,从待命状态转为跑状态
再同样添加一条转换线当speed less(小于)0.01时,从跑状态转为待命状态
注意,这里如果连接了个没有动画的状态,比如下图的Exit,在右侧就没有上图的Atomic
4.新建脚本
FixedUpdate固定更新、Update更新
当MonoBehaviour启用时,其Update在每一帧被调用。
处理Rigidbody时,需要用FixedUpdate代替Update。例如:给刚体加一个作用力时,你必须应用作用力在FixedUpdate里的固定帧,而不是Update中的帧。(两者帧长不同)可参考这个链接unity3d Update()和FixedUpdate()的区别 。
左右移动代码:
using System.Collections;using System.Collections.Generic;using UnityEngine;public class controller : MonoBehaviour {public float maxSpeed = 10f;bool facingright = true;Animator anim;Rigidbody2D rigi;// Use this for initializationvoid Start () {anim = GetComponent<Animator> ();rigi = GetComponent<Rigidbody2D> ();}// Update is called once per framevoid FixedUpdate () {float move = Input.GetAxis ("Horizontal");anim.SetFloat ("speed",Mathf.Abs(move));rigi.velocity = new Vector2 (move * maxSpeed,rigi.velocity.y);if ((move > 0 && !facingright) || (move < 0 && facingright))Flip ();}void Flip(){facingright = !facingright;Vector3 theScale = transform.localScale;theScale.x *= -1;transform.localScale = theScale;}}
这里是我的5.5的,与视频中不同的是如下定义
Rigidbody2D rigi;
rigi = GetComponent<Rigidbody2D>();
视频中的是旧版的,可以直接用默认rigidity2D,而unity5更严格了。
【注意】我试了运行,发现动画切换有点慢,才在动画状态机里发现了不同。
如下图这里unity5多了个Has Exit Time,即是否等动画播完才切换,默认是开启的。这里我们可以去掉勾选。在某些项目中,比如人物挂了,就倒地完成才消失,不同人物倒地时间不同于是需要这个选项。
5.跳跃是一串只有一帧的动画
新建11个
赋值
这样能让跳跃和落下使用同一套动画。
视频最后是连跳的实现和禁止跳跃时的转向。
OVER
- 【截图整理官方教程】unity 2D角色控制器 2D Character Controller
- untiy 2D角色控制器
- character controller角色控制器
- 角色控制器 Character Controller
- 角色控制器 Character Controller
- 角色控制器 Character Controller
- C#程序员整理的Unity 3D笔记(二十):2D Toolkit之官方教程《Whack a Mole》
- Unity3d角色控制器Character Controller
- Unity 2D动画控制器详解
- [精品角色建模教程].D.Artist.Character.Modeling
- 【Unity 3D】学习笔记三十八:角色控制器
- unity 2d遮挡透明显示整理
- 2D Toolkit官方教程翻译
- 2D Toolkit官方教程翻译
- [Unity官方文档翻译]2D or 3D Projects Unity中2D和3D项目的区别
- [Unity2D] Unity官方 Native 2D中文系列教程总共36讲 更新至15讲
- Unity 2D角色控制脚本C#直接上代码
- Unity 2D教程 | 骨骼动画:介绍
- 三维扫描仪[2]——大恒、微软、还是淘宝一下双目摄像头?
- SlidingMenu这样使用Android Studio结构的第三方库
- Excel 条件格式使用方法
- Linux学习笔记-文件与文件系统的压缩与打包(鸟哥9章 老段视频笔记)
- boost::serialization::singleton
- 【截图整理官方教程】unity 2D角色控制器 2D Character Controller
- React创建组件的三种方式及其区别
- JVM学习总结五——性能监控及故障处理工具
- 小顶堆大顶堆
- Unity中Avatar换装实现
- nc6报错 Failed to load ESAPI.properties as a classloader resource.
- Android Studio编译缓慢,长时间无响应优化
- scrollview嵌套listview运行后最先显示出来的位置不在顶部而是中间问题
- C语言字符串操作总结大全(超详细)