// Update is called once per frame
    void Update()
    {
        if (Input.GetAxis("Fire1") != 0)
        {
            RaycastHit hit;
            Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            if (Physics.Raycast(ray, out hit, 100.0f, LayerMask.GetMask("Clickable")))
            {
                foreach (Transform obj in textHolder.transform)
                {
                    Destroy(obj.gameObject);
                }

                objToFollow = hit.collider.gameObject;

                selectedObj.transform.parent        = objToFollow.transform;
                selectedObj.transform.localPosition = Vector3.zero;
                selectedObj.SetActive(true);
                myCameraObj.transform.parent        = objToFollow.transform;
                myCameraObj.transform.localPosition = Vector3.zero;
                followerType = hit.collider.gameObject.tag;

                valuesToDisplay.Clear();
                if (followerType == "Head")
                {
                    valuesToDisplay["Temperature"] = CreateNewText(new Vector2(0, 0), new Vector2(300, 30));
                    valuesToDisplay["Cycle"]       = CreateNewText(new Vector2(0, -50), new Vector2(300, 30));
                    //valuesToDisplay["Breath Efficiency"] = CreateNewText(new Vector2(0, -100), new Vector2(300, 30));
                }
                else if (followerType == "Particle")
                {
                    valuesToDisplay["Temperature"] = CreateNewText(new Vector2(0, 0), new Vector2(300, 30));
                    valuesToDisplay["Oxygencon"]   = CreateNewText(new Vector2(0, -50), new Vector2(300, 30));
                    valuesToDisplay["CO2con"]      = CreateNewText(new Vector2(0, -100), new Vector2(300, 30));
                }
            }
        }

        if (objToFollow)
        {
            if (followerType == "Head")
            {
                myCameraObj.transform.LookAt(objToFollow.transform.GetChild(0).transform.position);
                BreathScript tmps = objToFollow.GetComponent <BreathScript>();
                valuesToDisplay["Temperature"].text = "Body Temperature: " + tmps.bodyTemp * 10.0f + " C°";
                valuesToDisplay["Cycle"].text       = "Breath Cycle: " + tmps.cycleName;
                //valuesToDisplay["Breath Efficiency"].text = (tmps.breathEfficenty * 100.0f).ToString("0.00") + " %";
            }
            else if (followerType == "Particle")
            {
                myCameraObj.transform.LookAt(objToFollow.GetComponent <Rigidbody>().velocity + myCameraObj.transform.position);
                ParticleScript tmps = objToFollow.GetComponent <ParticleScript>();
                valuesToDisplay["Temperature"].text = "Particle Temperature: " + objToFollow.GetComponent <Rigidbody>().velocity.magnitude * 10.0f + " C°";
                valuesToDisplay["Oxygencon"].text   = "Oxygen level: " + tmps.o2Con * 100f + "%";
                valuesToDisplay["CO2con"].text      = "CO2 level: " + (1 - tmps.o2Con) * 100f + "%";
            }
        }
    }
    private IEnumerator DragonSkill()
    {
        GameObject       breathObject = MonoBehaviour.Instantiate(dragonBreathPrefab) as GameObject;
        DragonSkillModel skillModel   = new DragonSkillModel();

        skillModel.appreanceFrame      = defaultSkillInfo.m_sSkillBullet.dragonSkill.eachDuration;
        skillModel.gapFrame            = defaultSkillInfo.m_sSkillBullet.dragonSkill.gapDuration;
        skillModel.isRight             = moveScript.IsRight();
        skillModel.sheetingFrame       = defaultSkillInfo.m_sSkillBullet.dragonSkill.eachDuration;
        skillModel.sheetingSprite      = dragonLaserSprite;
        skillModel.sheetingSpriteStart = dragonSparkSprite;
        skillModel.stretchXMax         = defaultSkillInfo.m_sSkillBullet.dragonSkill.laserXArea;
        skillModel.stretchXMin         = defaultSkillInfo.m_sSkillBullet.dragonSkill.sparkXArea;
        skillModel.targetArray         = new ArrayList();
        skillModel.targetArray.Add(GlobalLayerMask.ENEMY_MASK);;


        float offsetValue = breathObject.GetComponent <CapsuleCollider2D>().size.x / 2 * breathObject.transform.localScale.x;
        float charSizeX   = moveScript.GetCurrentSize().x;

        breathObject.transform.position = new Vector3(
            moveScript.GetCurrentPostion().x + (moveScript.IsRight()? offsetValue : -offsetValue) + charSizeX,
            moveScript.GetCurrentPostion().y,
            moveScript.GetCurrentPostion().z);

        breathObject.transform.localScale = new Vector3(moveScript.IsRight() ? 1 : -1, 1, 1);

        BreathScript breathScript = breathObject.GetComponent <BreathScript>();

        breathScript.SetParameter(skillModel);
        yield return(new WaitUntil(() => breathScript.EndSkill() == true));

        Destroy(breathObject);

        moveScript.ReleaseInvincibility();
        moveScript.ReleaseHold();
        duringSkill = false;
    }