// 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; }