void CompleteAnimation(TrackEntry trackEntry) { if (trackEntry.animation.name.Equals(ANI_REPAIR)) { m_curState = BitControl.Clear(m_curState, (int)HERO_STATE.ATTACK); m_skletonAnimation.state.ClearTrack(1); if (!m_isMe) { return; } if (m_damagePointFix != null) { m_damagePointFix.GetComponent <RoboDamagePoint>().DamageFix(); } else if (m_monster != null) { if (m_monster.enabled) { m_monster.Damage(1); } else { NetworkManager.Instance().SendOrderMessage( JSONMessageTool.ToJsonHPUdate(m_monster.MONSTER_NAME, 1)); } } } }
// 상태값 교환으로 애니메이션 void NetworkManager.NetworkMessageEventListenrer.ReceiveNetworkMessage(NetworkManager.MessageEvent e) { if (e.msgType == NetworkManager.STATE_CHANGE) { if (GameManager.Instance().PLAYER.USER_NAME == m_movePlayerName) { return; } //상태값 뽑기 m_roboState = (int)e.msg.GetField(NetworkManager.STATE_CHANGE).i; // 공격 애니메이션을 gun 을 작동시키는 녀석이 재생할 필요가 없다고 가정하고 해보자 if (BitControl.Get(m_roboState, (int)ROBO_STATE.ATTACK) || BitControl.Get(m_roboState, (int)ROBO_STATE.COOLTIME)) { if (m_gunPlayerName == GameManager.Instance().PLAYER.USER_NAME) { m_roboState = BitControl.Clear(m_roboState, (int)ROBO_STATE.ATTACK); m_roboState = BitControl.Clear(m_roboState, (int)ROBO_STATE.COOLTIME); } } } else if (e.msgType == NetworkManager.GUN_ANGLE_CHANGE) { // 앵글 또한 보간해야함 if (GameManager.Instance().PLAYER.USER_NAME == m_gunPlayerName) { return; } m_targetAngle = e.msg.GetField(NetworkManager.GUN_ANGLE_CHANGE).f; m_syncTime_angle = 0.0f; m_delay_angle = Time.time - m_lastSyncTimeAngle; m_lastSyncTimeAngle = Time.time; } else if (e.msgType == NetworkManager.HP_UPDATE) { if (GameManager.Instance().PLAYER.USER_NAME.Equals(e.user) || !e.targetName.EndsWith("robo")) { return; } m_hp = (int)e.msg.GetField(NetworkManager.HP_UPDATE).i; } else if (e.msgType == NetworkManager.ENERGY_UPDATE) { if (GameManager.Instance().PLAYER.USER_NAME.Equals(e.user) || !e.targetName.EndsWith("robo")) { return; } m_roboEnergy = e.msg.GetField(NetworkManager.ENERGY_UPDATE).f; } else if (e.msgType.Equals(NetworkManager.ROBOT_PLACE)) { if (!string.IsNullOrEmpty(m_movePlayerName) && m_movePlayerName.Equals(e.user) || (!string.IsNullOrEmpty(m_gunPlayerName) && m_gunPlayerName.Equals(e.user))) { return; } m_controllName = e.targetName; } }
void OnTriggerExit2D(Collider2D col) { MDebug.Log("Exit " + col.tag); if (m_damagePointFix != null && m_damagePointFix.Equals(col.gameObject)) { m_damagePointFix = null; } if (!string.IsNullOrEmpty(col.transform.tag)) { m_userControlName = null; } if (col.tag == "LADDER") { ShowWeapon(true); m_LadderState = false; m_rigidBody.gravityScale = 1.0f; m_curState = BitControl.Clear(m_curState, (int)Hero.HERO_STATE.LADDER); // 사다리 m_skletonAnimation.enabled = true; this.GetComponent <MeshRenderer>().enabled = true; if (m_climb == null) { return; } if (m_climb.state.GetCurrent(0) != null) { m_climb.state.ClearTrack(0); } m_climb.gameObject.SetActive(false); } }
//단순 애니메이션 작업 void NetworkAnimation() { if (m_roboState == (int)ROBO_STATE.IDLE) //BitControl.Get(m_roboState, (int)ROBO_STATE.IDLE)) { CheckAndSetAnimation(ANI_IDLE, true); // m_skletonAnimation.state.SetAnimation(0, ANI_IDLE, true); m_engineAnimator.SetInteger("play", 0); } else { if (BitControl.Get(m_roboState, (int)ROBO_STATE.MOVE)) { if (IsCurrentAnimation(ANI_IDLE)) { m_skletonAnimation.state.SetAnimation(0, ANI_MOVE, true); } m_engineAnimator.SetInteger("play", 1); } } if (BitControl.Get(m_roboState, (int)ROBO_STATE.ATTACK)) { m_skletonAnimation.state.SetAnimation(0, ANI_ATTACK, false); m_roboState = BitControl.Clear(m_roboState, (int)ROBO_STATE.ATTACK); m_roboState = BitControl.Set(m_roboState, (int)ROBO_STATE.COOLTIME); } }
// :: 인벤 void ObjectRoboInvenControlCheck() { if (BitControl.Get(m_curState, (int)Hero.HERO_STATE.CONTROL_INVEN)) { m_userControlName = null; m_curState = BitControl.Clear(m_curState, (int)Hero.HERO_STATE.CONTROL_INVEN); } }
// 어택 종료시 초기화 void AttackEndCheckEvent(Spine.TrackEntry trackEntry) { if (BitControl.Get(m_roboState, (int)HeroRobo.ROBO_STATE.COOLTIME)) //trackEntry.animation.name == ANI_ATTACK) { m_roboState = BitControl.Clear(m_roboState, (int)HeroRobo.ROBO_STATE.COOLTIME); //m_effectAnimator.gameObject.SetActive(true); //m_effectAnimator.Play("Robo_attackEffect"); } }
// :::::::::::::::::::::::::::: // :: 힐링 존 void ObjectRoboHealControlCheck() { // 기능 구현해야함 if (BitControl.Get(m_curState, (int)HERO_STATE.CONTROL_HEAL)) { m_userControlName = null; m_curState = BitControl.Clear(m_curState, (int)HERO_STATE.CONTROL_HEAL); HP = GameSetting.HERO_MAX_HP; } }
// :::::::::::::::::::::::::::: // :: 힐링 존 void ObjectRoboHealControlCheck() { // 기능 구현해야함 if (BitControl.Get(m_curState, (int)Hero.HERO_STATE.CONTROL_HEAL)) { m_userControlName = null; m_curState = BitControl.Clear(m_curState, (int)Hero.HERO_STATE.CONTROL_HEAL); m_tuto.TutorialAction_Heal(100, 100); } }
// 어택 종료시 초기화 void AttackEndCheckEvent(Spine.TrackEntry trackEntry) { if (trackEntry.animation.name.Equals(ANI_ATTACK))//trackEntry.animation.name == ANI_ATTACK) { m_roboState = BitControl.Clear(m_roboState, (int)ROBO_STATE.COOLTIME); m_skletonAnimation.state.SetAnimation(0, ANI_IDLE, true); //m_effectAnimator.gameObject.SetActive(true); //m_effectAnimator.Play("Robo_attackEffect"); } }
void ControlGun() { m_prevAngle = m_gunAngle; if (!m_skletonAnimation.skeleton.flipX) { m_armBone.transform.rotation = Quaternion.Euler(0, 0, m_gunAngle); } else { m_armBone.transform.rotation = Quaternion.Euler(0, 0, -m_gunAngle); } if (Input.GetKey(KeyCode.UpArrow)) { if (m_gunAngle - 1.0f > -360.0f) { m_gunAngle -= 1.0f; } } if (Input.GetKey(KeyCode.DownArrow)) { if (m_gunAngle + 1.0f < 360.0f) { m_gunAngle += 1.0f; } } if (ENERGY >= 2.0f && !BitControl.Get(m_roboState, (int)ROBO_STATE.COOLTIME) && Input.GetKeyUp(KeyCode.Space)) { SoundManager.Instance().PlaySound(m_laser1); m_roboState = BitControl.Set(m_roboState, (int)ROBO_STATE.ATTACK); } if (BitControl.Get(m_roboState, (int)ROBO_STATE.ATTACK) && !BitControl.Get(m_roboState, (int)ROBO_STATE.COOLTIME)) { m_skletonAnimation.state.SetAnimation(0, ANI_ATTACK, false); StateSend(); m_roboState = BitControl.Clear(m_roboState, (int)ROBO_STATE.ATTACK); m_roboState = BitControl.Set(m_roboState, (int)ROBO_STATE.COOLTIME); if (ENERGY >= 2.0f) { //if (!IsInvoking("EnergyTestUser")) // Invoke("EnergyTestUser" , 0.5f); if (m_gunPlayerName.Equals(GameManager.Instance().PLAYER.USER_NAME)) { ENERGY -= 2.0f; FireBullet(); } } } }
void CompleteAnimation(TrackEntry trackEntry) { if (trackEntry.animation.name.Equals(ANI_REPAIR)) { m_curState = BitControl.Clear(m_curState, (int)Hero.HERO_STATE.ATTACK); m_skletonAnimation.state.ClearTrack(1); if (m_damagePointFix != null) { m_damagePointFix.GetComponent <RoboDamagePoint>().DamageFix(); } } }
float VerticalMoveControl() { float moveY = 0.0f; float jump = 0.0f; if (Input.GetKey(KeyCode.W)) { if (m_LadderState) { m_curState = BitControl.Set(m_curState, (int)Hero.HERO_STATE.MOVE); m_curState = BitControl.Set(m_curState, (int)Hero.HERO_STATE.LADDER); moveY = m_moveSpeed * Time.deltaTime; m_rigidBody.gravityScale = 0.0f; m_rigidBody.velocity = Vector2.zero; m_curState = BitControl.Clear(m_curState, (int)Hero.HERO_STATE.JUMP); m_curState = BitControl.Clear(m_curState, (int)Hero.HERO_STATE.JUMP_FALL); } else if (!BitControl.Get(m_curState, (int)Hero.HERO_STATE.JUMP) && !BitControl.Get(m_curState, (int)Hero.HERO_STATE.JUMP_FALL)) { // 특정 오브젝트 밟자마자 (점프 안끝났는데) 점프하는 경우 방지 if (m_rigidBody.velocity.y <= 0.0f) { m_curState = BitControl.Set(m_curState, (int)Hero.HERO_STATE.JUMP); jump = m_jumpPower; } } } if (Input.GetKey(KeyCode.S)) { if (m_LadderState) { m_curState = BitControl.Set(m_curState, (int)Hero.HERO_STATE.MOVE); m_curState = BitControl.Set(m_curState, (int)Hero.HERO_STATE.LADDER); moveY = -m_moveSpeed * Time.deltaTime; m_rigidBody.gravityScale = 0.0f; m_rigidBody.velocity = Vector2.zero; m_curState = BitControl.Clear(m_curState, (int)Hero.HERO_STATE.JUMP); m_curState = BitControl.Clear(m_curState, (int)Hero.HERO_STATE.JUMP_FALL); } else { //딱히 하는거 없음 } } return((BitControl.Get(m_curState, (int)Hero.HERO_STATE.JUMP)) ? jump : moveY); }
// 공격하기 void AttackControl() { if (Input.GetKeyUp(KeyCode.Space) && !BitControl.Get(m_curState, (int)HERO_STATE.CONTROL_ENERGY_CHARGE)) { m_curState = BitControl.Clear(m_curState, (int)HERO_STATE.ATTACK); if (m_skletonAnimation.state.GetCurrent(1) != null) { m_skletonAnimation.state.ClearTrack(1); } m_curState = BitControl.Set(m_curState, (int)HERO_STATE.ATTACK); } }
void ControlGun() { m_prevAngle = m_gunAngle; if (!m_skletonAnimation.skeleton.flipX) { m_armBone.transform.rotation = Quaternion.Euler(0, 0, m_gunAngle); } else { m_armBone.transform.rotation = Quaternion.Euler(0, 0, -m_gunAngle); } if (Input.GetKey(KeyCode.UpArrow)) { if (m_gunAngle - 1.0f > -360.0f) { m_gunAngle -= 1.0f; } } if (Input.GetKey(KeyCode.DownArrow)) { if (m_gunAngle + 1.0f < 360.0f) { m_gunAngle += 1.0f; } } if (Input.GetKeyUp(KeyCode.Space) && !BitControl.Get(m_roboState, (int)HeroRobo.ROBO_STATE.COOLTIME)) { SoundManager.Instance().PlaySound(m_laser1); m_roboState = BitControl.Set(m_roboState, (int)HeroRobo.ROBO_STATE.ATTACK); } if (BitControl.Get(m_roboState, (int)HeroRobo.ROBO_STATE.ATTACK)) { m_skletonAnimation.state.SetAnimation(0, ANI_ATTACK, false); m_roboState = BitControl.Clear(m_roboState, (int)HeroRobo.ROBO_STATE.ATTACK); m_roboState = BitControl.Set(m_roboState, (int)HeroRobo.ROBO_STATE.COOLTIME); FireBullet(); } }
void ControlInSpace() { Vector2 pos = transform.position; //상황 설정 // 좌 - 우 이동 상 점프 & 사다리 하 사다리 float moveX = 0.0f; float moveY = 0.0f; if (Input.GetKey(KeyCode.A)) { m_curState = BitControl.Set(m_curState, (int)HERO_STATE.MOVE); moveX = -m_moveSpeed * Time.deltaTime; this.m_skletonAnimation.skeleton.flipX = false; //this.GetComponent<SpriteRenderer>().flipX = false; } if (Input.GetKey(KeyCode.D)) { m_curState = BitControl.Set(m_curState, (int)HERO_STATE.MOVE); moveX = m_moveSpeed * Time.deltaTime; this.m_skletonAnimation.skeleton.flipX = true; //this.GetComponent<SpriteRenderer>().flipX = true; } if (Input.GetKey(KeyCode.W)) { m_curState = BitControl.Set(m_curState, (int)HERO_STATE.MOVE); moveY = m_moveSpeed * Time.deltaTime; } else if (Input.GetKey(KeyCode.S)) { m_curState = BitControl.Set(m_curState, (int)HERO_STATE.MOVE); moveY = -m_moveSpeed * Time.deltaTime; } if (Input.GetKey(KeyCode.S)) { // 요부분에서 사다리를 체크함 if (BitControl.Get(m_curState, (int)HERO_STATE.MOVE)) { moveY = -m_moveSpeed * Time.deltaTime; } else { //딱히 하는거 없음 } } // 상호작용 키 if (Input.GetKey(KeyCode.R)) { //this.m_animator.SetBool("Move", false); } // 이동 애니메이션 체크 if (BitControl.Get(m_curState, (int)HERO_STATE.MOVE) && (Input.GetKeyUp(KeyCode.A) || Input.GetKeyUp(KeyCode.D) || (Input.GetKeyUp(KeyCode.W) || Input.GetKeyUp(KeyCode.S)))) { m_curState = BitControl.Clear(m_curState, (int)HERO_STATE.MOVE); } // 최종 if (m_curState == (int)HERO_STATE.IDLE) { CheckAndSetAnimation(ANI_IDLE, true); } else { if (BitControl.Get(m_curState, (int)HERO_STATE.MOVE)) { if (IsCurrentAnimation(ANI_IDLE)) { m_skletonAnimation.state.SetAnimation(0, ANI_MOVE, true); } this.transform.Translate(new Vector3(moveX, moveY)); } } // MoveSend(); }
void Control() { Vector2 pos = transform.position; //상황 설정 // 좌 - 우 이동 상 점프 & 사다리 하 사다리 float moveX = 0.0f; float moveY = 0.0f; float jump = 0.0f; // 특정 컨트롤을 다루고 있는 상태가 아닐 경우 // if(GetMoveAbleCheck()) // 이동에 관련된 처리를 하는 녀석들 float // 가로이동 moveX = HorizontalMoveControl(); // 점프 및 수직 이동 if (BitControl.Get(m_curState, (int)Hero.HERO_STATE.LADDER)) { moveY = VerticalMoveControl(); } else { jump = VerticalMoveControl(); } // 공격 혹은 수리 AttackControl(); // 충전 ObjectRoboEnergyControlCheck(); ObjectControl(); // 이동 애니메이션 체크 if ((BitControl.Get(m_curState, (int)Hero.HERO_STATE.MOVE) && (Input.GetKeyUp(KeyCode.A) || Input.GetKeyUp(KeyCode.D) || Input.GetKeyUp(KeyCode.W) || Input.GetKeyUp(KeyCode.S)))) { m_curState = BitControl.Clear(m_curState, (int)Hero.HERO_STATE.MOVE); if (!BitControl.Get(m_curState, (int)Hero.HERO_STATE.LADDER)) { CheckAndSetAnimation(ANI_IDLE, true); m_curState = (int)Hero.HERO_STATE.IDLE; } else { m_climb.state.ClearTrack(0); } } // 떨어지는 상태임 if (!BitControl.Get(m_curState, (int)Hero.HERO_STATE.LADDER)) { if (m_rigidBody.velocity.y < 0.0f) { m_curState = BitControl.Clear(m_curState, (int)Hero.HERO_STATE.JUMP); m_curState = BitControl.Set(m_curState, (int)Hero.HERO_STATE.JUMP_FALL); } if (m_rigidBody.velocity.y >= 0.0f) { m_curState = BitControl.Clear(m_curState, (int)Hero.HERO_STATE.JUMP_FALL); if (!BitControl.Get(m_curState, (int)Hero.HERO_STATE.MOVE)) { CheckAndSetAnimation(ANI_IDLE, true); } } } // -- 상태값에 따라 애니메이션 처리 및 이동 점프 처리 ---------------------------------------- if (m_curState == (int)Hero.HERO_STATE.IDLE) { CheckAndSetAnimation(ANI_IDLE, true); } else { if (BitControl.Get(m_curState, (int)Hero.HERO_STATE.JUMP)) { // 점프 ㄱㄱ this.m_rigidBody.AddForce(new Vector2(0, jump)); // IDLE / MOVE 상태일 때만 점프 애니메이션 if (IsCurrentAnimation(ANI_IDLE))// || IsCurrentAnimation(ANI_MOVE)) { //레디 -> 점핑 ㄱㄱ m_skletonAnimation.state.SetAnimation(0, ANI_JUMP_READY, false); m_skletonAnimation.state.AddAnimation(0, ANI_JUMP_JUMPING, true, 0f); } } if (BitControl.Get(m_curState, (int)Hero.HERO_STATE.JUMP_FALL)) { //떨어지는 중 if (!BitControl.Get(m_curState, (int)Hero.HERO_STATE.MOVE)) { CheckAndSetAnimation(ANI_JUMP_FALL, false); } } if (BitControl.Get(m_curState, (int)Hero.HERO_STATE.MOVE)) { if (!IsCurrentAnimation(ANI_MOVE)) { m_skletonAnimation.state.SetAnimation(0, ANI_MOVE, true); // } this.transform.Translate(new Vector3(moveX, moveY)); } if (BitControl.Get(m_curState, (int)Hero.HERO_STATE.LADDER)) { m_skletonAnimation.enabled = false; this.GetComponent <MeshRenderer>().enabled = false; m_climb.gameObject.SetActive(true); if (BitControl.Get(m_curState, (int)Hero.HERO_STATE.MOVE)) { if (m_climb.state.GetCurrent(0) != null && !m_climb.state.GetCurrent(0).animation.name.Equals("animation")) { m_climb.state.SetAnimation(0, "animation", true); } else if (m_climb.state.GetCurrent(0) == null) { m_climb.state.SetAnimation(0, "animation", true); } MDebug.Log("여기"); } } //test if (BitControl.Get(m_curState, (int)Hero.HERO_STATE.ATTACK)) { m_skletonAnimation.state.SetAnimation(1, ANI_REPAIR, false); } } Debug.DrawLine(pos, new Vector3(pos.x, pos.y - GetComponent <BoxCollider2D>().bounds.size.y, 0.0f), Color.red); }
// Order 받는용 void NetworkManager.NetworkMessageEventListenrer.ReceiveNetworkMessage(NetworkManager.MessageEvent e) { if (e.msgType == NetworkManager.CHARACTER_HPUPDATE && (e.user).Equals(USERNAME)) { InvokeRepeating("DamageEffect", 0.1f, 0.1f); } if (e.msgType == NetworkManager.CHARACTER_HPUPDATE && e.targetName.Equals(USERNAME)) { Damage(1); } // 상태 체인지 else if (e.msgType == NetworkManager.STATE_CHANGE && (e.targetName).Equals(m_userName)) { if (m_isMe) { return; } m_curState = (int)e.msg.GetField(NetworkManager.STATE_CHANGE).i; } // 로봇 조종자 else if (e.msgType == NetworkManager.ROBOT_DRIVER) { if (e.msg.GetField(NetworkManager.ROBOT_DRIVER).b) { GameManager.Instance().ROBO.MOVE_PLYAER = e.user; //test if (m_isMe && m_userName.Equals(e.user + "_robo")) { GameManager.Instance().ChangeScene(GameManager.PLACE.ROBO, gameObject, "InteractionEffect", false); } } else { if (m_isMe && m_userName.Equals(e.user + "_robo")) { m_curState = BitControl.Clear(m_curState, (int)HERO_STATE.CONTROL_DRIVE); GameManager.Instance().ChangeScene(GameManager.PLACE.ROBO_IN_DRIVE); GameManager.Instance().HeroSetup(this); } GameManager.Instance().ROBO.MOVE_PLYAER = null; } } // 이녀석은 총기를 조작하는 사람 else if (e.msgType == NetworkManager.ROBOT_GUNNER) { if (e.msg.GetField(NetworkManager.ROBOT_GUNNER).b) { GameManager.Instance().ROBO.GUN_PLAYER = e.user; if (m_isMe && m_userName.Equals(e.user + "_robo")) { GameManager.Instance().ChangeScene(GameManager.PLACE.ROBO, gameObject, "InteractionEffect", false); } } else { if (m_isMe && m_userName.Equals(e.user + "_robo")) { m_curState = BitControl.Clear(m_curState, (int)HERO_STATE.CONTROL_GUN); GameManager.Instance().ChangeScene(GameManager.PLACE.ROBO_IN_GUN); GameManager.Instance().HeroSetup(this); } GameManager.Instance().ROBO.GUN_PLAYER = null; } } }
/// <summary> /// 캐릭터 조작에 관련된 함수 /// </summary> void Control() { // 가져다 쓰기 편하기 위해 선언 Vector3 pos = transform.position; // 요생키들이 실제 이동 float movex = 0; float movey = 0; if (Input.GetKey(KeyCode.LeftArrow) || Input.GetKey(KeyCode.RightArrow) || Input.GetKey(KeyCode.UpArrow) || Input.GetKey(KeyCode.DownArrow)) { m_engineAnimator.SetInteger("play", 1); m_roboState = BitControl.Set(m_roboState, (int)ROBO_STATE.MOVE); m_energyUserTick = 0.0f; } // Horizontal if (Input.GetKey(KeyCode.LeftArrow) && ENERGY >= 2) { if (!IsInvoking("EnergyTestUser")) { Invoke("EnergyTestUser", 0.5f); } movex = -m_moveSpeed * Time.deltaTime; m_skletonAnimation.skeleton.flipX = false; } if (Input.GetKey(KeyCode.RightArrow) && ENERGY >= 2) { if (!IsInvoking("EnergyTestUser")) { Invoke("EnergyTestUser", 0.5f); } movex = m_moveSpeed * Time.deltaTime; m_skletonAnimation.skeleton.flipX = true; } // Vertical if (Input.GetKey(KeyCode.UpArrow) && ENERGY >= 2) { if (!IsInvoking("EnergyTestUser")) { Invoke("EnergyTestUser", 0.5f); } movey = m_moveSpeed * Time.deltaTime; } if (Input.GetKey(KeyCode.DownArrow) && ENERGY >= 2) { if (!IsInvoking("EnergyTestUser")) { Invoke("EnergyTestUser", 0.5f); } movey = -m_moveSpeed * Time.deltaTime; } if (BitControl.Get(m_roboState, (int)ROBO_STATE.MOVE) && (Input.GetKeyUp(KeyCode.LeftArrow) || Input.GetKeyUp(KeyCode.RightArrow) || Input.GetKeyUp(KeyCode.UpArrow) || Input.GetKeyUp(KeyCode.DownArrow))) { // CheckAndSetAnimation(ANI_IDLE, true); m_skletonAnimation.state.SetAnimation(0, ANI_IDLE, true); m_roboState = BitControl.Clear(m_roboState, (int)ROBO_STATE.MOVE); m_engineAnimator.SetInteger("play", 0); //m_roboState = BitControl.Set(m_roboState, (int)ROBO_STATE.IDLE); } if (m_roboState == (int)ROBO_STATE.IDLE) //BitControl.Get(m_roboState, (int)ROBO_STATE.IDLE)) { CheckAndSetAnimation(ANI_IDLE, true); m_engineAnimator.SetInteger("play", 0); // m_skletonAnimation.state.SetAnimation(0, ANI_IDLE, true); } else { if (BitControl.Get(m_roboState, (int)ROBO_STATE.MOVE)) { transform.Translate(movex, movey, 0); if (IsCurrentAnimation(ANI_IDLE)) { m_skletonAnimation.state.SetAnimation(0, ANI_MOVE, true); } } } }