unity unity3d动画状态机机控制行走,人物怎么不懂

本篇写的2D动画 主要是控制人物行走方向和播放的动画帧 - CSDN博客
本篇写的2D动画 主要是控制人物行走方向和播放的动画帧
自己没有找到4组合适的动画 无法看的很清楚 只能片面的截一张
用GUI生成了几个按钮来控制图中的Cube
记得相机弄成2D视角
如果你有合适的动画 放进相应的资源文件夹中即可
using UnityE
using System.C
public class AA : MonoBehaviour {
private GameO
private bool keyUp;
private bool keyD
private bool keyL
private bool keyR
private float
private float fps=10;
private int nowF
private Object[] animUp;
private Object[] animD
private Object[] animL
private Object[] animR
private Object[] nowA
private Object[] backA
void Start () {
hero=GameObject.Find("hero");
animUp=Resources.LoadAll("up");
animDown=Resources.LoadAll("down");
animLeft=Resources.LoadAll("left");
animRight=Resources.LoadAll("right");
nowAnim=animD
backAnim=animD
void OnGUI () {
keyUp=GUILayout.RepeatButton("up");
keyDown=GUILayout.RepeatButton("down");
keyLeft=GUILayout.RepeatButton("left");
keyRight=GUILayout.RepeatButton("right");
void FixedUpdate(){
if(keyUp){
SetAnimation(animUp);
hero.transform.Translate(Vector3.up*0.01f);
if(keyDown){
SetAnimation(animDown);
hero.transform.Translate(-Vector3.up*0.01f);
if(keyLeft){
SetAnimation(animLeft);
hero.transform.Translate(Vector3.forward*0.01f);
if(keyRight){
SetAnimation(animRight);
hero.transform.Translate(-Vector3.forward*0.01f);
DrawAnimation(nowAnim);
void SetAnimation(Object[] tex){
Debug.Log("ing tex in for");
if(!backAnim.Equals(nowAnim)){
nowFram=0;
backAnim=nowA
void DrawAnimation(Object[] tex){
time+=Time.deltaT
if(time&=1/fps){
nowFram++;
if(nowFram&=tex.Length){
nowFram=0;
hero.renderer.material.mainTexture=(Texture2D)tex[nowFram];
本文已收录于以下专栏:
相关文章推荐
前提:这里使用的是Unity内置的Animator制作2D序列帧动画,不介绍制作过程。
在用Unity制作2D游戏时,如果动画是用图片序列帧来做,那么有的游戏一个角色动作通常会有八个方向,所以一套动...
3D 世界中自定义模型的使用恐怕是重中之重,因为系统自身提供的模型肯定是无法满足GD对游戏的策划,所以为了让游戏更加绚丽,我们须要调用美术制作的精品模型与动画,本章MOMO将带领盆友们学习Unity3...
3D 世界中自定义模型的使用恐怕是重中之重,因为系统自身提供的模型肯定是无法满足GD对游戏的策划,所以为了让游戏更加绚丽,我们须要调用美术制作的精品模型与动画,本章MOMO将带领盆友们学习Unity3...
首先看下人物动画效果实现步骤
制作人物动作图片
在代码中提取动作图片
将图片组成每一种状态的动作
实现不同动作间的切换
制作人物动作图片相关技术 Plist通过将小的图片组合成一张大图,可以减少读取图...
他的最新文章
讲师:何宇健
讲师:董岩
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)Unity模拟龙之谷人物行走简单控制 - CSDN博客
Unity模拟龙之谷人物行走简单控制
我个人挺喜欢龙之谷(DN)的人物控制的(不是广告哈....),就是人物太萌了一点,动作、打击感都挺好的。
今天用Unity简单模仿了一下DN的人物控制,当然,游戏里面动作很多,我这里只做了简单的walk和run的测试哈,但是感觉也蛮舒服的,哈哈。
期待的效果:鼠标旋转控制视角位置,滚轮控制镜头缩放。点击一次W键为行走,快速点击两次为奔跑。
1.准给工作:
一个Camera、一块地皮、一只Cube
2.镜头的缩放和旋转实现:
看下Camera的组件:
再看下Cube的组件:
mouselook和smoothfollow的脚本就不贴出来了,都有的。
为了方便,下面是NMove和TestMove的代码:
using&UnityE&&using&System.C&&&&public&class&NMove&:&MonoBehaviour&{&&&&&&&&&&&&&&&&&&&&public&int&MouseWheelSensitivity&=&5;&&&&&&&&&public&int&MouseZoomMin&=&2;&&&&&&&&&&&&&&&&&&public&int&MouseZoomMax&=&10;&&&&&&&&&&&&&&&&&public&float&normalD&&&&&&&&&&&&&&&&&&public&GameObject&C&&&&&&smooth_follow&CameraS&&&&&&&&&&&&&&&&&void&Start&()&&&&&&&{&&&&&&&&&&CameraScript&=&Camera.GetComponent&smooth_follow&();&&&&&&&&}&&&&&&&&&&&&&void&LateUpdate()&&&&&&{&&&&&&&&&&if&(Input.GetAxis(&Mouse&ScrollWheel&)&!=&0)&&&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&Debug.Log(Input.GetAxis(&Mouse&ScrollWheel&));&&&&&&&&&&&&&&&&&&&&&&&&&&&&if&(normalDistance&&=&MouseZoomMin&&&&normalDistance&&=&MouseZoomMax)&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&normalDistance&-=&Input.GetAxis(&Mouse&ScrollWheel&)&*&MouseWheelS&&&&&&&&&&&&&&}&&&&&&&&&&&&&&if&(normalDistance&&&MouseZoomMin)&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&normalDistance&=&MouseZoomM&&&&&&&&&&&&&&}&&&&&&&&&&&&&&if&(normalDistance&&&MouseZoomMax)&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&normalDistance&=&MouseZoomM&&&&&&&&&&&&&&}&&&&&&&&&&&&&&CameraScript.distance&=&normalD&&&&&&&&&&}&&&&&&}&&}&&
TestMove.cs:
using&UnityE&&using&System.C&&&&public&class&TestMove&:&MonoBehaviour&{&&&&&&&&public&float&speed&=&1.0f;&&&&&&public&GameObject&&&&&&&&&&&&&public&float&rospeed&=&1.0f;&&&&&&&&&&&&&&&&void&Update&()&{&&&&&&&&&&if&(Input.GetKey(KeyCode.W&|&KeyCode.S&|&KeyCode.A&|&KeyCode.D))&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&&&&&&&&&&transform.rotation&=&Quaternion.Slerp(transform.rotation,camera.transform.rotation&,Time.deltaTime*rospeed);&&&&&&&&&&&&&&&&&&&&&&transform.eulerAngles&=&new&UnityEngine.Vector3(0,transform.eulerAngles.y,transform.eulerAngles.z);&&&&&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&if&(Input.GetKey(KeyCode.W))&&&&&&&&&&{&&&&&&&&&&&&&&this.transform.Translate(Vector3.forward*Time.deltaTime*speed);&&&&&&&&&&}&&&&&&&&&&if&(Input.GetKey(KeyCode.S))&&&&&&&&&&{&&&&&&&&&&&&&&this.transform.Translate(Vector3.forward&*&Time.deltaTime&*&speed&*&-1);&&&&&&&&&&}&&&&&&&&&&if&(Input.GetKey(KeyCode.D))&&&&&&&&&&{&&&&&&&&&&&&&&this.transform.Translate(Vector3.right&*&Time.deltaTime&*&speed);&&&&&&&&&&}&&&&&&&&&&if&(Input.GetKey(KeyCode.A))&&&&&&&&&&{&&&&&&&&&&&&&&this.transform.Translate(Vector3.right&*&Time.deltaTime&*&speed&*&-1);&&&&&&&&&&}&&&&&&&&&&&&&&}&&}&&
OK,现在你的Cube角色已经活动自如了!
注意,我这里用Cube因为是标准的立方体,主要是为了方便。
3.添加你喜欢的人物模型,制作状态机,使Cube成为其父物体:
下面是PlayerSM(state machine)的代码:
using&UnityE&&using&System.C&&&&&&&&&&&&&&&&&&public&class&PlayerSM&:&MonoBehaviour&{&&&&&&&&private&Animator&&&&&&&&&&&&&&&&&private&static&readonly&string&ActionCMD&=&&ActionCMD&;&&&&&&private&static&readonly&string&Run&=&&run&;&&&&&&&&&float&timefirst&=&0f;&&&&&&&&&float&timesecond&=&0f;&&&&&&int&n&=&0;&&&&&&bool&runsignal&=&false;&&&&&&public&float&KeyTime&=&0.3f;&&&&&&void&Start()&&&&&&{&&&&&&&&&&animator&=&this.GetComponent&Animator&();&&&&&&&&&}&&&&&&&&&&&&&&&void&Update&()&&
&&&&{&&&&&&&&&&&&&&&&&&&AnimatorStateInfo&stateinfo&=&animator.GetCurrentAnimatorStateInfo(0);&&&&&&&&&&&&&&&&&&&if&(Input.GetKey(KeyCode.W))&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&&&&print(&runsigl&=&&+runsignal);&&&&&&&&&&&&&&if&(&!runsignal&)&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&animator.SetInteger(ActionCMD,&1);&&&&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&else&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&animator.SetInteger(Run,&1);&&&&&&&&&&&&&&&&&&animator.SetInteger(ActionCMD,&0);&&&&&&&&&&&&&&&&&&print(&wwwww+runsigal&=&&&+&runsignal);&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&if&(Input.GetKeyDown(&w&)&)&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&if&(n&==&0)&&&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&&&timefirst&=&Time.&&&&&&&&&&&&&&&&&&&&&&n++;&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&else&if&(n&==&1)&&&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&&&timesecond&=&Time.&&&&&&&&&&&&&&&&&&&&&&n&=&0;&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&if&(Mathf.Abs(timesecond&-&timefirst)&&=&KeyTime)&&&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&animator.SetInteger(Run,&1);&&&&&&&&&&&&&&&&&&&&&&print(&run&=&1..........................&);&&&&&&&&&&&&&&&&&&&&&&runsignal&=&true;&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&if(!Input.anyKey)&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&&&&&&&&&animator.SetInteger(ActionCMD,&0);&&&&&&&&&&&&&&animator.SetInteger(Run,&0);&&&&&&&&&&&&&&runsignal&=&false;&&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&}&&}&&
4.隐藏掉cube的mesh render.再测试,OK!
效果:鼠标位置控制旋转视角、滚轮控制视角缩放、点击一次W人物行走,快速点击两次奔跑,无按键为idle状态。
本文已收录于以下专栏:
相关文章推荐
猴子原创,欢迎转载。转载请注明: 转载自Cocos2D开发网--,谢谢!原文地址: /?p=342今天正式开始了第一个实战项目...
本人游戏策划一枚,爱好游戏设计开发.
今天的这篇名字升级到“高级篇”了,因为战斗这块已经实现了原本的学习预期,接下来准备去搞搞角色创建、数据存储和主场景控制这些东西了。
这次高级篇的效果请看Gif:
Hi,推荐文件给你 &Unity3D用按钮控制人物行走.zip& /s/JaBAq
//动画数组
private var animUp:Objec...
在漫游游戏中常用的功能就是人物在场景中行走,必要的功能就是鼠标点击地面人物就朝着那个方向行走,键盘方向键前后左右也能控制人物的行走和跳跃,在官方自带的第三人称视角中做了一点修改,官方自带的ThirdP...
前几天在QQ群,有人问了怎么实现人物的行走控制,正好之前做过一个游戏的小DEMO,控制一个玩家接受任务,然后去副本打怪,就有实现这功能。
分享一下相关代码吧,呵呵,自己参照Unity的demo写的不...
转自:雨松MOMO 日 于 雨松MOMO程序研究院 发表
最新补充。
         一般在做鼠标选择时是从摄像机向目标点发送一条射线,然后取得射线与对象相交的点来计...
接着上一篇:Unity模拟龙之谷人物行走简单控制
这一篇是对上一篇的扩展,记下我的学习记录吧!避免遗忘。
这一篇对上一篇中的动作状态进行了扩展,主要是submachine的运用。
看下状态机吧:...
Unity的模拟DN(龙之谷)的人物控制简单实现。
他的最新文章
讲师:何宇健
讲师:董岩
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)【问题】怎么才能让人物行走的时候,播放模型行走的动画【unity3d吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:78,424贴子:
【问题】怎么才能让人物行走的时候,播放模型行走的动画收藏
大神帮帮忙
51CTO学院11年行业品牌,1400万用户选择,中国专业IT技能学习平台,unity能做什么.通过在线学习的方式,帮助广大技术人员实现技能提升,高薪就业的职业梦想,unity能做什么.
游戏角色行走动画是不能带位移信息的,就是看起来像跑步机上的那种。其实就是只用控制位移旋转就够了。
用动画状态机
告诉我吧 告诉我吧这是什么原理升级有什么捷径存在吗这个贴吧一切都崩坏了都毁了你默默水着 什么都没看见已签到的我 干脆停止呼吸吧laishuiba能够发贴 发贴不了能够回复 无法回复在准备水经验之后我动摇了在这扭曲的贴吧里我渐渐变得透明且不可视请别来找我 不要注视着我我不想在度娘描绘的贴吧里伤害你请你记住我水经验没有错 错的是这个世界
找下游戏蛮牛的教学视频吧。第一季是基础,看我第一季就行了
登录百度帐号推荐应用3被浏览899分享邀请回答0添加评论分享收藏感谢收起1 个回答被折叠()

我要回帖

更多关于 unity5 动画状态机 的文章

 

随机推荐