unity3d之角色的移动篇 -- 追尾视角下的键盘移动

所谓追尾就是只能看到角色的背部,比较典型的有刺客型条,真三国无双一类。

本功能是在aniamtor系统下完成的,在完成这个行走效果需要先准备以下几个步骤:
1.拖入idle动作和blend tree,blend tree下混合左跑,直线跑,右跑3个动作。

2.定义一个float类型的变量Speed作为动作的切换条件: idle ->blend tree(speed>0.1), blend tree -> idle (speed<0.1)

3.为混合树的3个动作设置一个float类型的Direction,-1,0,1分别作为左跑,直跑,右跑的阀值。

最后是完成下列代码

        if (animator)
        {
            float h = Input.GetAxis("Horizontal");
            float v = Input.GetAxis("Vertical");

          //设置动画切换条件
            animator.SetFloat("Speed", h*h+v*v);
            animator.SetFloat("Direction", h, DirectionDampTime, Time.deltaTime);
        }   

代码还是相当简短和简单的,混合树的阀值也刚好对应了横轴方向的大小,实现了对应的切换。

唯独这里设置speed的时候把h*h+v*v作为切换的数值我看的不太懂,希望有懂的大神指教一下啦。

时间: 2024-08-07 12:29:36

unity3d之角色的移动篇 -- 追尾视角下的键盘移动的相关文章

unity3d之角色的移动篇 -- 45&#176;视角下的键盘移动

这个知识点我想分成几个章节来写,分别记录不同情况下不同的移动方式. 首先是在45度角摄像机下的键盘控制角色移动(如下图), 先写一个最简单的移动脚本吧(这个脚本也可以用于平常的小测试) 在这之前先得为角色挂上character controller组件,然后获取它. void move(){ //首先获取横纵轴的方向 float h = Input.GetAxis ("Horizontal"); float v = Input.GetAxis("Vertical")

unity3d之角色的移动篇 -- 俯视视角下的键盘移动番外篇

这是一个来自unity官网实例的行走脚本,经过我的简单整理后发布在这里,写的非常好,条理分明,一目了然,运行起来很有操作手感. 这个脚本是在animator系统下运行的,所以在写这个脚本前需要先对animator controller进行一些简单的设置: 1. idle状态(默认)和run状态(blend tree,混合了walk和run) 2.定义一个float类型的参数,idle->run(speed>0.1), run->idle(speed<0.1) 3.在run的blen

unity3d之角色的移动篇 -- 俯视视角下的鼠标移动

类似DOTA游戏的移动方法, 其余没什么好说的了. using UnityEngine; using System.Collections; public class gogogogo : MonoBehaviour { public float moveSpeed; public Vector3 newPosition; public CharacterController charactercontroller; //public AnimationClip idle; //public A

[Unity3D]Unity3D游戏开发之自由视角下的角色控制

在开始今天的内容前,首先让我们来学习下Unity3D中较为重要的一部分知识,理解这些知识是我们开始学习今天内容的基础. 1.Input.GetAxis():该方法用于在Unity3D中根据坐标轴名称返回虚拟坐标系中的值,通常情况下,使用控制器和键盘输入时此值范围在-1到1之间.这段话怎么理解呢?我们来看下面这段脚本: [csharp] view plaincopyprint? using UnityEngine; using System.Collections; public class ex

游戏竟然有“追尾”视角!你把后背交给谁?

视角,几乎决定了玩家进入游戏之后的第一印象. 同小说写作差不多,游戏里的视角设定基本上也包括第一人称视角.第二人称视角和第三人称视角三种.当然,第二人称视角的游戏颇为罕见,就如小说中,用第二人称视角写作时,描写主人公时满篇都是"你",感觉非常别扭. 文/张书乐 TMT行业观察者.游戏产业时评人,人民网.人民邮电报专栏作者 新著有<微博运营完全自学手册> 在小说中出现"你",或许读者还感觉是作者在和自己促膝谈心.可如果游戏中出现"你"呢

Unity3D热更新之LuaFramework篇[02]--用Lua创建自己的面板

在上篇文章 Unity3D热更新之LuaFramework篇[01]--从零开始 中,我们了解了怎么获得一个可用的LuaFramework框架. 本篇将我会先介绍一下如何配置Lua开发环境,然后分析在此框架中加载面板的流程,以及如何创建自己的面板. 1.配置Lua开发环境 有一点要说明的是,使用此种方式(ToLua+LuaFramework)做热更新,则意味着你的大部分逻辑都需要改用Lua语言来编写. 因此,开发前得先得配置好Lua开发环境.毕竟,工欲善其事,必先利其器. 环境配置大概分以下三个

Unity3D热更新之LuaFramework篇[04]--自定义UI监听方法

时隔一个多月我又回来啦! 坚持真的是很难的一件事,其它事情稍忙,就很容易说服自己把写博客的计划给推迟了. 好在终于克服了自己的惰性,今天又开始了. 本篇继续我的Luaframework学习之路. 一.规范开发模式 此前的示例中,动态加载的panel都默认以GuiCamera为父节点,且面板的大小设置得有些随意,为方便后续开发,现做一些调整和规范. 1.设定本项目的开发分辨率为1334x750(Game视图分辨率也设置为这个大小): 2.调整相机,将原有的GuiCamera从Canvas下拖离出来

Unity3D热更新之LuaFramework篇[05]--Lua脚本调用c#以及如何在Lua中使用Dotween

在上一篇文章 Unity3D热更新之LuaFramework篇[04]--自定义UI监听方法 中,我对LuaBehaviour脚本进行了扩展,添加了两个新的UI监听方法,也提到最好能单写一个脚本处理此事.本篇文章就来继续这个工作. 从Lua中调用C#代码 1.创建UI监听脚本 打开之前的工程,在Assets/LuaFrameworks/Scripts/Common下,创建一个UIEventEx.cs脚本,将LuaBehaviour.cs中的AddButtonClick以及AddInputFiel

[再寄小读者之数学篇](2014-06-20 积分号下求导)

设 $f\in C(-\infty,+\infty)$, 定义 $\dps{F(x)=\int_a^b f(x+t)\cos t\rd t}$, $a\leq x\leq b$. (1) 证明: $F$ 在 $[a,b]$ 上可导; (2) 计算 $F'(x)$. 解答: 由 $$\bex F(x)=\int_{x+a}^{x+b} f(s)\cos (s-x)\rd t \eex$$ 即知 $$\beex \bea F'(x)&=\int_{x+a}^{x+b} f(s)\sin (s-x)\