好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

角色连招脚本.docx

3页
  • 卖家[上传人]:z****
  • 文档编号:258958104
  • 上传时间:2022-02-24
  • 文档格式:DOCX
  • 文档大小:20.25KB
  • / 3 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • Unity3D角色连招脚本 Posted on 2013年02月19日 by U3d / Unity3D脚本/插件/被围观 373 次 Unity3D用c#脚本:角色连招001using UnityEngine;002 003using System.Collections;004 005public class PlayerAttackController : MonoBehaviour {006 007//记录当前攻击动画;008 009AnimationClip currentAttack;010 011//获取人物动画组件;012 013Animation playerAnimation;014 015//动画标签;016 017public enum ActionState018 019{020 021Attack_0,022 023Attack_1,024 025None026 027}028 029//记录当前动画标签;030 031private ActionState actionState = ActionState.None;032 033/**034 035* 攻击的逻辑036 037*/038 039void AttackLogic(){040 041if (Input.GetButtonDown("Fire1")){042 043if (actionState != ActionState.Attack_0 && actionState != ActionState.Attack_1) {044 045actionState = ActionState.Attack_0;046 047}else if (actionState == ActionState.Attack_0 && playerAnimation[currentAttack.name].time > 1.0f){048 049actionState = ActionState.Attack_1;050 051}052 053}054 055}056 057/**058 059* 攻击套路选择060 061*/062 063void Attacks (){064 065float delayTime =0.0f;066 067switch (actionState){068 069case ActionState.Attack_0:070 071delayTime = -0.1f;072 073playerAnimation.CrossFade("Attack", 0.15f);074 075currentAttack = playerAnimation["Attack"].clip;076 077break;078 079case ActionState.Attack_1:080 081delayTime = -0.1f;082 083playerAnimation.CrossFade("Attack01", 0.15f);084 085currentAttack = playerAnimation["Attack01"].clip;086 087break;088 089case ActionState.None:090 091break;092 093}094 095//Switch to default if an animation is almost over096 097if (playerAnimation[currentAttack.name].time > (playerAnimation[currentAttack.name].length +delayTime)){098 099actionState = ActionState.None;100 101currentAttack = playerAnimation["Idle"].clip;102 103}104 105}106 107void Awake(){108 109//程序开启前,获取人物动画组件;110 111playerAnimation = GetComponent () as Animation;112 113}114 115void Start () {116 117if (playerAnimation.clip) {118 119currentAttack = playerAnimation.clip;120 121} else {122 123currentAttack = playerAnimation["Idle"].clip;124 125}126 127}128 129// Update is called once per frame130 131void Update () {132 133if (currentAttack != null){134 135AttackLogic();136 137Attacks();138 139}140 141}142 143}。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.