public void OnReceiveRangeAttackPacket(int node, PacketId id, byte[] data) { if (m_isHost) { // 호스트의 몬스터는 실행 완료. return; } // 패킷에서 파라미터를 추출해서 ↓의 코드 스니펫을 호출한다. GameObject go = GameObject.FindGameObjectWithTag("Boss"); if (go != null) { chrControllerEnemyBoss bossController = go.GetComponent <chrControllerEnemyBoss>(); if (bossController != null) { BossRangePacket packet = new BossRangePacket(data); BossRangeAttack attack = packet.GetPacket(); float attackPower = attack.power; float attackRange = attack.range; Debug.Log("Receive boss quick attack[Power:" + attackPower + " Ramge:" + attackRange + "]"); bossController.cmdBossRangeAttack(attackPower, attackRange); } } }
public void RequestBossRangeAttack(float attackPower, float attackRange) { // 호스트 측의 보스를 움직인다 : 이 명령을 로컬의 보스 오브젝트에 바이패스한다. GameObject go = GameObject.FindGameObjectWithTag("Boss"); if (go != null) { chrControllerEnemyBoss bossController = go.GetComponent <chrControllerEnemyBoss>(); if (bossController != null) { bossController.cmdBossRangeAttack(attackPower, attackRange); // 게스트 측의 보스를 움직인다. 통신 대응(패킷을 만들어 던진다). BossRangeAttack attack = new BossRangeAttack(); attack.power = attackPower; attack.range = attackRange; BossRangePacket packet = new BossRangePacket(attack); if (m_network != null) { int serverNode = m_network.GetServerNode(); m_network.SendReliable <BossRangeAttack>(serverNode, packet); Debug.Log("Send boss range attack[Power:" + attackPower + " Ramge:" + attackRange + "]"); } } } }
public void OnReceiveRangeAttackPacket(int node, PacketId id, byte[] data) { if (m_isHost) { // 호스트의 몬스터는 실행 완료. return; } // 패킷에서 파라미터를 추출해서 ↓의 코드 스니펫을 호출한다. GameObject go = GameObject.FindGameObjectWithTag("Boss"); if (go != null) { chrControllerEnemyBoss bossController = go.GetComponent<chrControllerEnemyBoss>(); if (bossController != null) { BossRangePacket packet = new BossRangePacket(data); BossRangeAttack attack = packet.GetPacket(); float attackPower = attack.power; float attackRange = attack.range; Debug.Log("Receive boss quick attack[Power:" + attackPower + " Ramge:" + attackRange + "]"); bossController.cmdBossRangeAttack(attackPower, attackRange); } } }
public void RequestBossRangeAttack(float attackPower, float attackRange) { // 호스트 측의 보스를 움직인다 : 이 명령을 로컬의 보스 오브젝트에 바이패스한다. GameObject go = GameObject.FindGameObjectWithTag("Boss"); if (go != null) { chrControllerEnemyBoss bossController = go.GetComponent<chrControllerEnemyBoss>(); if (bossController != null) { bossController.cmdBossRangeAttack(attackPower, attackRange); // 게스트 측의 보스를 움직인다. 통신 대응(패킷을 만들어 던진다). BossRangeAttack attack = new BossRangeAttack(); attack.power = attackPower; attack.range = attackRange; BossRangePacket packet = new BossRangePacket(attack); if (m_network != null) { int serverNode = m_network.GetServerNode(); m_network.SendReliable<BossRangeAttack>(serverNode, packet); Debug.Log("Send boss range attack[Power:" + attackPower + " Ramge:" + attackRange + "]"); } } } }