python和java的格斗动画_Unity3D一个简单的对打游戏

我发现没有动画想做什么都不行噢~~~,这个动画还是一个大侠给我的,网上找了很多bip动作文件,但是转成FBX格式不行,好像是版本不一样的缘故。后来为了做进度条我之前学了一下EZGUI,但是没有得到想要的效果,高手说是因为没有SM2的缘故,后来我又学习iGUI,的确简单又多用,不错哦~~~至于NGUI我还没用过,以后看看再说~~~呵呵呵,如果要说他们的区别的话,EZGUI是3D的,但是控件较少;iGUI简单易用,控件多,是2D的和unity本身的GUI相似,NGUI没用过还不知道噢~~~~。还有就是我一运行unity就卡死,害我做了半天的东西都没保存噢,大家一定要多保存哈~~~找了半天原因,后来发现原来是我在update函数里面写了一个while循环,把while改成if就好了(并不是一用while就卡,就是用的不恰当而已~~~)。

下面看看今天的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");

}

}

}具体下载目录在 /2012年资料/4月/17日/Unity3D一个简单的对打游戏/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值