private void HandleItemCreation() { if (Input.GetKeyUp(KeyCode.LeftShift)) { _selected = null; } if (!Input.GetMouseButtonDown(0) || _selected == null) { return; } var ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (!Physics.Raycast(ray, out hit)) { return; } var go = MapLoader.Instance.CreateItem(new MapItem { PrefabName = _selected.ItemName }); go.transform.position = hit.point; _dragging = go.GetComponent <MapItemHolder>(); _dragging.Item.Position = go.transform.position; MapLoader.Instance.BindItem(go); if (!Input.GetKey(KeyCode.LeftShift)) { _selected = null; } }
private void Start() { var repository = ItemRepository.Instance; foreach (var definition in repository.MapItems) { var uiItem = Instantiate(ItemTemplate, transform); uiItem.GetComponent <Image>().sprite = Sprite.Create( definition.Icon, new Rect( Vector2.zero, new Vector2(definition.Icon.width, definition.Icon.height) ), Vector2.zero ); uiItem.GetComponent <Button>().onClick.AddListener(() => _selected = definition); } }