private void Update() { //Debug.Log(m_state); if (m_state == GRENADE_STATE.DEAD) { m_explosion.gameObject.SetActive(true); m_networkloader.RpcLoadPrefab_INDEPENDENT(PREFAB_ID.GREANDE_EXPLOSION, m_team); m_explosion.transform.parent = null; m_explosion.gameObject.SetActive(true); m_state = GRENADE_STATE.INACTIVE; return; } if (m_state == GRENADE_STATE.BURNING) { m_fuseTimeRemaining -= Time.deltaTime; if (m_fuseTimeRemaining <= 0) { m_state = GRENADE_STATE.DEAD; } return; } if (m_state == GRENADE_STATE.INACTIVE) { NetworkServer.Destroy(m_entity.gameObject); } }
void onCollision(Rigidbody body, EntityPlayer entity, Vector3 impactPoint) { if (m_state != GRENADE_STATE.TRAVELLING && m_state != GRENADE_STATE.BURNING) { return; } if (entity != null && (entity.m_team == GameData.TEAM.RED || entity.m_team == GameData.TEAM.BLUE)) { onDirectHit(entity); m_state = GRENADE_STATE.DEAD; return; } if (body.gameObject.layer == PhysicsLayer.GET_LAYER(PHYSICS_LAYER.LAYER_RED_SHIELD) || body.gameObject.layer == PhysicsLayer.GET_LAYER(PHYSICS_LAYER.LAYER_BLUE_SHIELD) ) { m_state = GRENADE_STATE.DEAD; return; } if (m_state == GRENADE_STATE.TRAVELLING) { m_state = GRENADE_STATE.BURNING; } m_triggerEnter.enabled = false; }