void CheckTile() { RaycastHit hit; if (car_state.carState != csCarState.CARSTATE.CLIMBING) { if (Physics.Raycast(transform.position + new Vector3(0, -0.04f, 0), -transform.up, out hit, 1.0f)) { if (hit.collider.gameObject.tag == "Water") { if (car_state.carState != csCarState.CARSTATE.RECOVERY) { GameObject W_Particle = Instantiate(Water_Particle) as GameObject; W_Particle.transform.position = gameObject.transform.position; Destroy(W_Particle, 0.5f); car_state.carState = csCarState.CARSTATE.WATER; } } if (hit.collider.gameObject.tag == "Stage2_Water") { if (car_state.carState != csCarState.CARSTATE.RECOVERY) { GameObject W_Particle = Instantiate(Water_Particle) as GameObject; W_Particle.transform.position = gameObject.transform.position; Destroy(W_Particle, 0.5f); car_state.carState = csCarState.CARSTATE.WATER_Sixty; } } else if (hit.collider.gameObject.tag == "Floor") { if (car_state.carState != csCarState.CARSTATE.DETOUR && car_state.carState != csCarState.CARSTATE.RECOVERY && car_state.carState != csCarState.CARSTATE.BIG_JUMP_READY && car_state.carState != csCarState.CARSTATE.BIG_JUMP) { car_state.carState = csCarState.CARSTATE.RUN; } } else if (hit.collider.gameObject.tag == "Bomb_Area") { hit.collider.gameObject.SetActive(false); car_state.carState = csCarState.CARSTATE.STUN; } else if (hit.collider.tag == "Recovery_Area") { StartCoroutine(car_state.BlinkEffect()); car_state.carState = csCarState.CARSTATE.RECOVERY; } } } Debug.DrawRay((transform.position) + new Vector3(0, -0.04f, 0), -transform.up * 1, Color.red); }