private void PlaceMouseSpriteAsFirstOption() { // Instantiate var currentInstance = Instantiate(pickBuildingPrefab, transform); // Update -> Position / Image / Text currentInstance.GetComponent <RectTransform>().anchoredPosition = new Vector2(0, 0); currentInstance.Find("BuildingImage") .GetComponent <Image>().sprite = arrowSprite; currentInstance.Find("BuildingImage") .GetComponent <RectTransform>().sizeDelta = deltaForArrow; // Events buttons.Add(currentInstance.GetComponent <Button>()); buttons[0].onClick.AddListener(() => { BuildingManager.Instance.ChangeActiveBuilding(null); UpdateActiveBuildingType(); }); mouseEventsCache = buttons[0].GetComponent <MouseEnterExitEvents>(); mouseEventsCache.OnMouseEnter += (object sender, EventArgs e) => { TooltipUI.Instance.Show("Arrow", false); }; mouseEventsCache.OnMouseExit += (object sender, EventArgs e) => { TooltipUI.Instance.Hide(); }; arrowImageRef = currentInstance .Find("Selected").GetComponent <Image>(); }
private Transform GenButton(float pos, BuildingTypeScriptableObject buildingType) { Transform xform = Instantiate(buildingSelect, transform); xform.gameObject.SetActive(true); xform.Find("image").GetComponent <Image>().sprite = buildingType != null ? buildingType.sprite : arrowSprite; xform.GetComponent <Button>().onClick.AddListener(() => { BuildingManager.Instance.SelectBuildingType(buildingType); UpdateSelectedBuildingType(buildingType); }); if (buildingType != null) { _buildingButtons[buildingType] = xform; } MouseEnterExitEvents mouseEnterExitEvents = xform.GetComponent <MouseEnterExitEvents>(); mouseEnterExitEvents.OnMouseEnter += (object sender, EventArgs eventArgs) => { if (buildingType != null) { TooltipUI.Instance.ShowMsg(buildingType.nameString + "\n" + buildingType.GetProductionCostsString()); } else { TooltipUI.Instance.ShowMsg("Arrow"); } }; mouseEnterExitEvents.OnMouseExit += (object sender, EventArgs eventArgs) => { TooltipUI.Instance.Hide(); }; RectTransform rect = xform.GetComponent <RectTransform>(); rect.anchoredPosition = new Vector3(pos, 0, 0); return(xform); }
private void BuildRestOfUI(int providedIndex) { int i = providedIndex; Resources.Load <BuildingTypesSO>( typeof(BuildingTypesSO).Name).List.ForEach(x => { // If type is not ignored if (ignoreBuildingList.Contains(x) == false) { // Instantiate var currentInstance = Instantiate(pickBuildingPrefab, transform); // Update -> Position / Image / Text currentInstance.GetComponent <RectTransform>().anchoredPosition = new Vector2(moveByPixels * i, 0); currentInstance.Find("BuildingImage") .GetComponent <Image>().sprite = x.sprite; // Events buttons.Add(currentInstance.GetComponent <Button>()); buttons[i].onClick.AddListener(() => { BuildingManager.Instance.ChangeActiveBuilding(x); UpdateActiveBuildingType(); }); mouseEventsCache = buttons[i].GetComponent <MouseEnterExitEvents>(); mouseEventsCache.OnMouseEnter += (object sender, EventArgs e) => { TooltipUI.Instance.Show($"{x.buildingName}\n{x.GetConstructionCost()}", false); }; mouseEventsCache.OnMouseExit += (object sender, EventArgs e) => { TooltipUI.Instance.Hide(); }; // Image reference referenceForSelected.Add(x, currentInstance .Find("Selected").GetComponent <Image>()); i++; } }); }
private void Awake() { Transform buttonTemplate = transform.Find("buttonTemplate"); buttonTemplate.gameObject.SetActive(false); BuildingTypeListSO buildingTypeList = Resources.Load <BuildingTypeListSO>(typeof(BuildingTypeListSO).Name); buttonTransformDictionary = new Dictionary <BuildingTypeSO, Transform>(); int index = 0; arrowButton = Instantiate(buttonTemplate, transform); arrowButton.gameObject.SetActive(true); float offsetAmount = +110f; arrowButton.GetComponent <RectTransform>().anchoredPosition = new Vector2(offsetAmount * index, 0); arrowButton.Find("image").GetComponent <Image>().sprite = arrowSprite; arrowButton.Find("image").GetComponent <RectTransform>().sizeDelta = new Vector2(0, -40); arrowButton.GetComponent <Button>().onClick.AddListener(() => { BuildingManager.Instance.SetActiveBuildingType(null); }); // Using the class with Interfaces of mouse OnPinterEnter and exit. MouseEnterExitEvents mouseEnterExitEvents = arrowButton.GetComponent <MouseEnterExitEvents>(); mouseEnterExitEvents.OnMouseEnter += (object sender, EventArgs eventArgs) => { TooltipUI.Insntace.Show("Arrow"); }; mouseEnterExitEvents.OnMouseExit += (object sender, EventArgs eventArgs) => { TooltipUI.Insntace.Hide(); }; index++; foreach (BuildingTypeSO buildingType in buildingTypeList.list) { if (ignoreBuildingTypeList.Contains(buildingType)) { continue; // Will Skip this current iteraction } Transform buttonTransform = Instantiate(buttonTemplate, transform); buttonTransform.gameObject.SetActive(true); offsetAmount = +110f; buttonTransform.GetComponent <RectTransform>().anchoredPosition = new Vector2(offsetAmount * index, 0); buttonTransform.Find("image").GetComponent <Image>().sprite = buildingType.sprite; buttonTransform.GetComponent <Button>().onClick.AddListener(() => { BuildingManager.Instance.SetActiveBuildingType(buildingType); }); // Using the class with Interfaces of mouse OnPinterEnter and exit. mouseEnterExitEvents = buttonTransform.GetComponent <MouseEnterExitEvents>(); mouseEnterExitEvents.OnMouseEnter += (object sender, EventArgs eventArgs) => { TooltipUI.Insntace.Show(buildingType.nameString + "\n" + buildingType.GetConstructionResourceCostString()); }; mouseEnterExitEvents.OnMouseExit += (object sender, EventArgs eventArgs) => { TooltipUI.Insntace.Hide(); }; buttonTransformDictionary[buildingType] = buttonTransform; index++; } }
private void Awake() { btnTypeButtonDict = new Dictionary <BuildingTypeSO, Button>(); Transform btnTmpTrm = transform.Find("btnTamplate"); btnTmpTrm.gameObject.SetActive(false); buildingTypeListSO = Resources.Load <BuildingTypeListSO>(typeof(BuildingTypeListSO).Name); Debug.Log(buildingTypeListSO.btList.Count); int idx = 0; arrowBtnTrm = Instantiate(btnTmpTrm, transform); arrowBtnTrm.gameObject.SetActive(true); // 위치 적용 float offsetAmount = 146f; arrowBtnTrm.GetComponent <RectTransform>().anchoredPosition = new Vector2(offsetAmount * idx, 0); // 이미지 적용 Transform imageTrm = arrowBtnTrm.Find("image"); imageTrm.GetComponent <Image>().sprite = arrowSprite; imageTrm.GetComponent <RectTransform>().sizeDelta = new Vector2(-30, -30); Button imageButton = imageTrm.gameObject.AddComponent <Button>(); imageButton.onClick.AddListener(() => { BuilderManager.Instance.SetActiveBuildingType(null); selectedImgTrm.position = arrowBtnTrm.position; }); idx++; foreach (var item in buildingTypeListSO.btList) { if (ignoreBuilidingTypeList.Contains(item)) { continue; } // 생성 및 활성화 Transform btnTrm = Instantiate(btnTmpTrm, transform); btnTrm.gameObject.SetActive(true); // 위치 적용 btnTrm.GetComponent <RectTransform>().anchoredPosition = new Vector2(offsetAmount * idx, 0); // 이미지 적용 btnTrm.Find("image").GetComponent <Image>().sprite = item.sprite; btnTrm.GetComponent <Button>().onClick.AddListener(() => { BuilderManager.Instance.SetActiveBuildingType(item); selectedImgTrm.position = btnTrm.position; }); idx++; //마우스 이벤트 캡처 코드 MouseEnterExitEvents mouseEnterExitEvents = btnTrm.GetComponent <MouseEnterExitEvents>(); mouseEnterExitEvents.OnMouseEnter += () => UIToolTip.instance.ShowBulidingInfo(item.nameStr, item.buildResCostArr); mouseEnterExitEvents.OnMouseExit += () => UIToolTip.instance.Hide(); } }
void Awake() { Transform btnTemplate = transform.Find("btnTemplate"); btnTemplate.gameObject.SetActive(false); _btnTransformDictionary = new Dictionary <BuildingTypeSO, Transform>(); BuildingTypeListSO buildingTypeList = Resources.Load <BuildingTypeListSO>(nameof(BuildingTypeListSO)); int index = 0; _arrowBtn = Instantiate(btnTemplate, transform); _arrowBtn.gameObject.SetActive(true); float offsetAmount = 130f; _arrowBtn.GetComponent <RectTransform>().anchoredPosition = new Vector2(offsetAmount * index, 0); _arrowBtn.Find("image").GetComponent <Image>().sprite = arrowSprite; _arrowBtn.Find("image").GetComponent <RectTransform>().sizeDelta = new Vector2(0, -30); _arrowBtn.GetComponent <Button>().onClick .AddListener(() => BuildingManager.Instance.SetActiveBuildingType(null)); MouseEnterExitEvents mouseEnterExitEvents = _arrowBtn.GetComponent <MouseEnterExitEvents>(); mouseEnterExitEvents.OnMouseEnter += (sender, e) => { TooltipUI.Instance.Show("Arrow"); }; mouseEnterExitEvents.OnMouseExit += (sender, e) => { TooltipUI.Instance.Hide(); }; index++; foreach (BuildingTypeSO buildingType in buildingTypeList.list) { if (ignoreBuildingTypeList.Contains(buildingType)) { continue; } Transform btnTransform = Instantiate(btnTemplate, transform); btnTransform.gameObject.SetActive(true); offsetAmount = 130f; btnTransform.GetComponent <RectTransform>().anchoredPosition = new Vector2(offsetAmount * index, 0); btnTransform.Find("image").GetComponent <Image>().sprite = buildingType.sprite; btnTransform.GetComponent <Button>().onClick .AddListener(() => BuildingManager.Instance.SetActiveBuildingType(buildingType)); mouseEnterExitEvents = btnTransform.GetComponent <MouseEnterExitEvents>(); mouseEnterExitEvents.OnMouseEnter += (sender, e) => { TooltipUI.Instance.Show(buildingType.nameString + "\n" + buildingType.GetConstructionResourceCostString()); }; mouseEnterExitEvents.OnMouseExit += (object sender, EventArgs e) => { TooltipUI.Instance.Hide(); }; _btnTransformDictionary[buildingType] = btnTransform; index++; } }