void AddAttachmentSlot(int numOfSlots) { for (int i = 0; i < numOfSlots; i++) { GameObject tempSpawned = Instantiate(attachmentSlotToSpawn); tempSpawned.transform.SetParent(inventoryParent.transform); tempSpawned.transform.localScale = new Vector3(1, 1); numOfAttachmentSlots++; int tempInt = numOfAttachmentSlots - 1; attachmentImages.Add(tempSpawned.transform.GetChild(1).GetComponent <Image>()); //armorImages[tempInt].rectTransform.localPosition = new Vector3(12.8f, -12.8f, 0); attachmentButtons.Add(tempSpawned.GetComponent <Button>()); tempSpawned.GetComponent <Button>().onClick.AddListener(() => OnButtonClickAttachment(tempInt)); RightClickButton rightClick = tempSpawned.GetComponent <RightClickButton>(); rightClick.rightClick.AddListener(() => OnRightClickAttachment(tempInt)); EventTrigger trigger = tempSpawned.GetComponent <EventTrigger>(); EventTrigger.Entry entry = new EventTrigger.Entry(); EventTrigger.Entry exitEntry = new EventTrigger.Entry(); exitEntry.eventID = EventTriggerType.PointerExit; exitEntry.callback.AddListener((data) => { OnPointerExitAttachment(); }); entry.eventID = EventTriggerType.PointerEnter; entry.callback.AddListener((data) => { OnPointerEnterAttachment(tempInt); }); trigger.triggers.Add(entry); trigger.triggers.Add(exitEntry); } }
void AddWeaponSlot() { GameObject tempSpawned = Instantiate(weaponSlotToSpawn); tempSpawned.transform.SetParent(weaponDisplayParent.transform); tempSpawned.transform.localScale = new Vector3(1, 1); numOfWeaponSlots++; int tempInt = numOfWeaponSlots - 1; weaponImages.Add(tempSpawned.transform.GetChild(0).GetComponent <Image>()); weaponButtons.Add(tempSpawned.GetComponent <Button>()); tempSpawned.GetComponent <Button>().onClick.AddListener(() => OnButtonClickWeapon(tempInt)); RightClickButton rightClick = tempSpawned.GetComponent <RightClickButton>(); rightClick.rightClick.AddListener(() => OnRightClickWeapon(tempInt)); EventTrigger trigger = tempSpawned.GetComponent <EventTrigger>(); EventTrigger.Entry entry = new EventTrigger.Entry(); EventTrigger.Entry exitEntry = new EventTrigger.Entry(); exitEntry.eventID = EventTriggerType.PointerExit; exitEntry.callback.AddListener((data) => { OnPointerExitWeapon(); }); entry.eventID = EventTriggerType.PointerEnter; entry.callback.AddListener((data) => { OnPointerEnterWeapon(tempInt); }); trigger.triggers.Add(entry); trigger.triggers.Add(exitEntry); }
void AddTrigger(RightClickButton button, triggerFunc func) { EventTrigger trigger = button.GetComponent <EventTrigger>(); EventTrigger.Entry entry = new EventTrigger.Entry(); entry.eventID = EventTriggerType.PointerDown; entry.callback.AddListener((data) => { func((PointerEventData)data); }); trigger.triggers.Add(entry); }
RightClickButton MakeButton(GameObject prefab, triggerFunc func, int offset) { GameObject obj = Instantiate(prefab) as GameObject; obj.transform.SetParent(this.transform); RightClickButton button = obj.GetComponent <RightClickButton>(); button.offset = offset; this.AddTrigger(button, func); return(button); }
void Start() { GameObject prefab = Resources.Load("Prefabs/RightClickButton") as GameObject; GameObject cam = GameObject.Find("Client/CameraAnchor/OrbitCamera"); this.target = GameObject.Find("Client/CameraAnchor"); this.camera = cam.GetComponent <OrbitCamera>(); this.follow = this.MakeButton(prefab, this.OnFollow, 0); this.examine = this.MakeButton(prefab, this.OnExamine, 1); this.gameObject.SetActive(false); this.bounds = this.GetComponent <RectTransform>(); this.bounds.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 2 * 32 + 8); this.bounds.ForceUpdateRectTransforms(); }
void show() { Vector3 tileCoords = getHoveredTileCoordinates(); Tile t = map.tiles[(int)tileCoords.x, (int)tileCoords.y]; List <TileAction> tileActions = t.getTileActions(map.getCurrentUnit()); if (tileActions.Count == 0) { hide(); return; } shown = true; moveTooltipAboveHoveredTile(); gameObject.SetActive(true); for (int n = rightClickActionButtonContainer.childCount - 1; n >= 0; n--) { RightClickButton b = rightClickActionButtonContainer.GetChild(n).GetComponent <RightClickButton>(); if (b.mouseOver) { b.mouseExit(); } GameObject.Destroy(b.gameObject); } foreach (TileAction tA in tileActions) { GameObject tileButton = GameObject.Instantiate(rightClickActionButtonPrefab) as GameObject; tileButton.transform.GetChild(0).GetComponent <Text>().text = tA.toString(); tileButton.transform.SetParent(rightClickActionButtonContainer, false); // tileButton.transform.localScale = new Vector3(1.0f, 1.0f, 1.0f); // tileButton.transform.localPosition = new Vector3(0.0f, 0.0f, 0.0f); RightClickButton b = tileButton.GetComponent <RightClickButton>(); b.action = tA; } trans.sizeDelta = new Vector2(trans.sizeDelta.x, tileActions.Count * 50.0f); if (currentRightClickTile != null && currentRightClickTile != t) { currentRightClickTile.currentRightClick = false; } currentRightClickTile = t; currentRightClickTile.currentRightClick = true; }
void hide() { if (!shown) { return; } shown = false; pointerExit(); gameObject.SetActive(false); for (int n = rightClickActionButtonContainer.childCount - 1; n >= 0; n--) { RightClickButton b = rightClickActionButtonContainer.GetChild(n).GetComponent <RightClickButton>(); if (b.mouseOver) { b.mouseExit(); } GameObject.Destroy(b.gameObject); } if (currentRightClickTile != null) { currentRightClickTile.currentRightClick = false; currentRightClickTile = null; } }