public void AddObjective(GameObject obj, string text) { if (!obj || this.m_Objectives.ContainsKey(obj)) { return; } HUDObjective3D.Objective objective = default(HUDObjective3D.Objective); objective.icon = UnityEngine.Object.Instantiate <GameObject>(this.m_IconPrefab, base.transform).GetComponent <RawImage>(); objective.text = objective.icon.transform.Find("Name").GetComponent <Text>(); objective.text.text = GreenHellGame.Instance.GetLocalization().Get(text, true); objective.dist = objective.icon.transform.Find("Dist").GetComponent <Text>(); this.m_Objectives.Add(obj, objective); this.m_ShowObjectives = true; }
public override void UpdateAfterCamera() { base.UpdateAfterCamera(); if (CameraManager.Get().m_MainCamera == null) { foreach (GameObject key in this.m_Objectives.Keys) { HUDObjective3D.Objective objective = this.m_Objectives[key]; objective.dist.gameObject.SetActive(false); objective.icon.gameObject.SetActive(false); objective.text.gameObject.SetActive(false); } return; } foreach (GameObject gameObject in this.m_Objectives.Keys) { HUDObjective3D.Objective objective2 = this.m_Objectives[gameObject]; Vector3 vector = CameraManager.Get().m_MainCamera.WorldToViewportPoint(gameObject.transform.position); vector = CameraManager.Get().m_MainCamera.ViewportToScreenPoint(vector); if (vector.z <= 0f) { objective2.icon.gameObject.SetActive(false); } else { objective2.icon.gameObject.SetActive(true); objective2.icon.transform.position = vector; Color color = objective2.icon.color; float num = Vector3.Distance(gameObject.transform.position, Player.Get().transform.position); color.a = CJTools.Math.GetProportionalClamp(0.6f, 1f, num, 10f, 0f); objective2.icon.color = color; color = objective2.text.color; color.a = objective2.icon.color.a; objective2.text.color = color; objective2.text.gameObject.SetActive(true); objective2.dist.text = Mathf.CeilToInt(num).ToString() + "m"; objective2.dist.color = color; objective2.dist.gameObject.SetActive(true); } } }