unity3d一个简单的对打游戏
来源:互联网 发布:算法导论 第一版pdf 编辑:程序博客网 时间:2024/04/27 17:21
我发现没有动画想做什么都不行噢~~~,这个动画还是一个大侠给我的,网上找了很多bip动作文件,但是转成FBX格式不行,好像是版本不一样的缘故。后来为了做进度条我之前学了一下EZGUI,但是没有得到想要的效果,高手说是因为没有SM2的缘故,后来我又学习iGUI,的确简单又多用,不错哦~~~至于NGUI我还没用过,以后看看再说~~~呵呵呵,如果要说他们的区别的话,EZGUI是3D的,但是控件较少;iGUI简单易用,控件多,是2D的和unity本身的GUI相似,NGUI没用过还不知道噢~~~~。还有就是我一运行unity就卡死,害我做了半天的东西都没保存噢,大家一定要多保存哈~~~找了半天原因,后来发现原来是我在update函数里面写了一个while循环,把while改成if就好了(千万别在update里面用while,一不小心就卡死咯,要用的话在start里面可以的)。
下面看看今天的demo吧,如果不懂动画的兄弟,可以先去前面看看我写的一个动画的博文,应该是看得懂的啦。我把这个demo的工程放到资源里面去了,里面有动画的,大家可以去下来看看哈~~~~~
注意:这里面没有用碰撞检测,因为如果要发生碰撞的话,刀可能会飞的,而且也砍不下去啊,所以只能用触发器了。
下面简单来说说触发器的用法吧,和碰撞一样,必须至少有一个物体有rigidbody,而且两个物体必须都有含有触发器的的collider,我们这用boxcollider(meshcollider不能触发),而且在collider中的Is Trigger要勾上哦~~~~
我们的游戏对象控制代码player.js:
//游戏角色的移动控制var playerprogressbar:iGUI.iGUIProgressBar;var play1:boolean=true;var isdie:boolean=false;function Update(){if(!isdie){ if(Input.GetKey(KeyCode.UpArrow)){ animation.Play("walk"); transform.Translate(Vector3.forward*1*Time.deltaTime); } if(Input.GetKey(KeyCode.DownArrow)){ transform.Rotate(Vector3.up*180); } if(Input.GetKey(KeyCode.RightArrow)){ transform.Rotate(Vector3.up*10); } if(Input.GetKey(KeyCode.LeftArrow)){ transform.Rotate(Vector3.up*-10); } if(Input.GetKey(KeyCode.Space)){ animation.Play("attack"); } if (!animation.isPlaying){ animation.Play("Take 001"); } } }//游戏对象的血条控制function OnTriggerEnter(obj:Collider){ if(obj.gameObject.name!="playerarrow"){ if(playerprogressbar.value!=0){ playerprogressbar.value-=10; print(obj.gameObject.name); } else{ animation.Play("die"); isdie=true; } } }
敌人的游戏对象控制代码 enemy.js:
var player:Transform;var flag:boolean=true;var enemyprogressbar:iGUI.iGUIProgressBar;function Update () { if(flag){ animation.Play("walk"); transform.LookAt(player); transform.Translate(Vector3.forward*0.5*Time.deltaTime); } if(Vector3.Distance(player.position,transform.position)<3){ flag=false; animation.Play("attack"); } else{ flag=true; }}function OnTriggerEnter(obj:Collider){ if(obj.gameObject.name!="enemyarrow"){ if(enemyprogressbar.value!=0){ enemyprogressbar.value-=10; print(obj.gameObject.name); } else{ animation.Play("die"); } }}
- unity3d一个简单的对打游戏
- unity3d c#用于两个坦克对打血条的增减
- 用unity3D做一个简单的2D井字棋游戏
- Unity3D 创建一个简单的2D游戏
- unity3D简单的汽车游戏
- 乒乓球对打的机器人
- [Unity3D]手机3D游戏开发:使用UnityRemote开发一个简单的FPS案例
- Unity3D 获取一个游戏对象的尺寸
- unity3d简单射击游戏
- 一个简单的游戏源代码
- 一个简单的游戏(1)
- 一个简单的游戏(2)
- 一个简单的游戏(3)
- 一个简单的游戏源代码
- 一个简单的游戏源代码
- 一个简单的游戏源代码
- 一个简单的游戏源代码
- 一个简单的游戏源代码
- MFC 双缓冲技术
- 一个效率很高的BM算法 汇编实现的
- 【Android组件学习】ImageSwitcher+Gallery组合用法
- JCF之迭代器
- 11gR2 Clusterware and Grid Home - What You Need to Know [ID 1053147.1]
- unity3d一个简单的对打游戏
- MongoDB系列教程(二)
- 关于android来去电监控的一点总结
- Ascii Unicode Mbcs Utf8 Charset Encoding Codepage Font
- 使用Eclipse构建Maven的SpringMVC项目
- C#窗体之-->窗口外观属性...
- VC中 #pragma 小结
- 单向链表
- jqGrid与Struts2的结合应用(二) —— 操作Grid数据