public ScollerMoveIterm(RectTransform sonPanel, RectTransform itemRect, Button button, sbyte index, ClickOn click, ScollerDirect tmpDirect) : base(itemRect, index, tmpDirect) { isHide = true; hidlePanel = sonPanel; //UnityEngine.Debug.Log("ScollerMoveIterm direct ==" + direct); hidlePanel.localScale = new Vector2(1, 0); parentHeight = itemRect.rect.height; parentWidth = itemRect.rect.width; hidePanelHeigth = hidlePanel.rect.height; hidePanelWidth = hidlePanel.rect.width; btnClick = new ClickOn(click); // Button btn = itemRect.GetComponentInChildren<Button>(); button.onClick.AddListener(BtnClick); // targetPos = cellTransform.localPosition; }
void ClickToSelect() { mousePos1 = Camera.main.ScreenToViewportPoint(Input.mousePosition); RaycastHit rayHit; if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out rayHit, 100, clickableLayer)) { ClickOn clickOnScript = rayHit.collider.GetComponent <ClickOn>(); if (Input.GetKey(KeyCode.LeftControl)) { if (clickOnScript.currentlySelected == false) { selectedObjects.Add(rayHit.collider.gameObject); clickOnScript.currentlySelected = true; clickOnScript.ClickMe(); } else { selectedObjects.Remove(rayHit.collider.gameObject); clickOnScript.currentlySelected = false; clickOnScript.ClickMe(); } } else { DeselectObjects(); selectedObjects.Add(rayHit.collider.gameObject); clickOnScript.currentlySelected = true; clickOnScript.ClickMe(); } } }
// Update is called once per frame void Update() { // Clear on Right Click if (Input.GetMouseButtonDown(1)) { clearSelectedObjects(); } // Select on Left Click if (Input.GetMouseButtonDown(0)) { mousePos1 = Camera.main.ScreenToViewportPoint(Input.mousePosition); RaycastHit rayHit; if (Physics.Raycast( Camera.main.ScreenPointToRay(Input.mousePosition), out rayHit, Mathf.Infinity, SelectableObjectsLayer)) { ClickOn clickOnScript = rayHit.collider.GetComponent <ClickOn>(); // Additional Select on Left Ctrl if (Input.GetKey(KeyCode.LeftControl)) { if (clickOnScript.currentlySelected == false) { selectedObjects.Add(rayHit.collider.gameObject); clickOnScript.currentlySelected = true; clickOnScript.ClickMe(); } else { selectedObjects.Remove(rayHit.collider.gameObject); clickOnScript.currentlySelected = false; clickOnScript.ClickMe(); } } else { clearSelectedObjects(); selectedObjects.Add(rayHit.collider.gameObject); clickOnScript.currentlySelected = true; clickOnScript.ClickMe(); } } } if (Input.GetMouseButtonUp(0)) { mousePos2 = Camera.main.ScreenToViewportPoint(Input.mousePosition); if (mousePos1 != mousePos2) { SelectObjects(); } } }
void Update() { if (Input.GetMouseButtonDown(1)) { if (selectedObjects.Count > 0) { foreach (GameObject obj in selectedObjects) { obj.GetComponent <ClickOn>().currentlySelected = false; obj.GetComponent <ClickOn>().ClickMe(); } selectedObjects.Clear(); } } if (Input.GetMouseButtonDown(0)) { RaycastHit rayHit; if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out rayHit, Mathf.Infinity, clickablesLayer)) { ClickOn clickOnScript = rayHit.collider.GetComponent <ClickOn>(); if (Input.GetKey("left ctrl")) { if (clickOnScript.currentlySelected == false) { selectedObjects.Add(rayHit.collider.gameObject); clickOnScript.currentlySelected = true; clickOnScript.ClickMe(); } else { selectedObjects.Remove(rayHit.collider.gameObject); clickOnScript.currentlySelected = false; clickOnScript.ClickMe(); } } else { if (selectedObjects.Count > 0) { foreach (GameObject obj in selectedObjects) { obj.GetComponent <ClickOn>().currentlySelected = false; obj.GetComponent <ClickOn>().ClickMe(); } selectedObjects.Clear(); } selectedObjects.Add(rayHit.collider.gameObject); clickOnScript.currentlySelected = true; clickOnScript.ClickMe(); } } } }
public void Add(ClickOn obj) { if (selectableObjects.Contains(obj)) { return; } selectableObjects.Add(obj); }
private void OnMouseUp() { cardToAttach = this.GetComponent <ClickOn>(); Debug.Log("Mouse up over panel"); LayoutRebuilder.ForceRebuildLayoutImmediate(hlg.GetComponent <RectTransform>()); }
// Update is called once per frame void Update() { if (Input.GetMouseButtonDown(0)) { RaycastHit rayHit; if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out rayHit, Mathf.Infinity, clickablesLayer)) { ClickOn ClickOnScript = rayHit.collider.GetComponent <ClickOn>(); } } }
// Update is called once per frame void Update() { if (Input.GetMouseButtonDown(1)) { ClearSelection(); } if (Input.GetMouseButtonDown(0)) { mousePos1 = Camera.main.ScreenToViewportPoint(Input.mousePosition); RaycastHit rayHit; if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out rayHit, Mathf.Infinity, clickablesLayer)) { ClickOn clickOnScript = rayHit.collider.GetComponent <ClickOn> (); if (Input.GetKey("left ctrl")) { if (clickOnScript.currentlySelected == false) { selectedObjects.Add(rayHit.collider.gameObject); clickOnScript.currentlySelected = true; clickOnScript.ClickMe(); } else { selectedObjects.Remove(rayHit.collider.gameObject); clickOnScript.currentlySelected = false; clickOnScript.ClickMe(); } } else { ClearSelection(); selectedObjects.Add(rayHit.collider.gameObject); clickOnScript.currentlySelected = true; clickOnScript.ClickMe(); } } } if (Input.GetMouseButtonUp(0)) { mousePos2 = Camera.main.ScreenToViewportPoint(Input.mousePosition); if (mousePos1 != mousePos2) { SelectObjects(); } } }
private void clearSelectedObjects() { if (selectedObjects.Count > 0) { foreach (GameObject obj in selectedObjects) { ClickOn objClickOnScript = obj.GetComponent <ClickOn>(); objClickOnScript.currentlySelected = false; objClickOnScript.ClickMe(); } selectedObjects.Clear(); } }
// Update is called once per frame void Update() { if (Input.GetMouseButtonDown(0)) { RaycastHit rayHit; if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out rayHit, Mathf.Infinity, clickablesLayer)) { ClickOn clickOnScript = rayHit.collider.GetComponent <ClickOn>(); clickOnScript.selected = !clickOnScript.selected; selectedname = rayHit.collider.gameObject.name; Debug.Log(rayHit.collider.gameObject.name); if (selectedname != null) { selectedObject = GameObject.Find(selectedname); Debug.Log("Selected Object Position is " + selectedObject.transform.position); selectedObjectCoords = selectedObject.transform.position; selectionIndicator.transform.position = new Vector3(selectedObjectCoords.x, selectedObjectCoords.y - 0.2f, selectedObjectCoords.z); unitSelected = true; //can't find the gameobject that is the parrent of the selected object for some reason // = selectedObject.parent.gameObject; } } } if (Input.GetMouseButtonDown(1) && unitSelected == true) { //if (unitSelected = true) RaycastHit rayHit; if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out rayHit, Mathf.Infinity, terrainLayer)) { Debug.Log(rayHit.collider.gameObject.name); moveHexCoords = new Vector3(rayHit.collider.transform.position.x, rayHit.collider.transform.position.y, rayHit.collider.transform.position.z); moveIndicator.transform.position = new Vector3(moveHexCoords.x, moveHexCoords.y + 0.5f, moveHexCoords.z); //draw line between selected object and marker Debug.DrawLine(moveIndicator.transform.position, selectedObject.transform.position, Color.red, 2.5f); // Vector3 targetDir = moveIndicator.transform.position - selectedObject.transform.position; float angle = Vector3.Angle(moveIndicator.transform.position, selectedObject.transform.position); angleBetween = angle; selectedObject.transform.Rotate(0.0f, 45.0f, 0.0f, Space.World); } if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out rayHit, Mathf.Infinity, Enemy)) { Debug.Log("shooting"); } } }
void Update() { if (Input.GetMouseButtonDown(1)) { ClearSelection(); } if (Input.GetMouseButtonDown(0)) { mousePos1 = Camera.main.ScreenToViewportPoint(Input.mousePosition); RaycastHit rayHit; if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out rayHit, Mathf.Infinity, clickablesLayer)) { ClickOn clickOnScript = rayHit.collider.GetComponent <ClickOn>(); if (Input.GetKey("left ctrl")) { if (clickOnScript.currentlySelected == false) { selectedObjects.Add(rayHit.collider.gameObject); clickOnScript.currentlySelected = true; clickOnScript.ClickMe(); } else { selectedObjects.Remove(rayHit.collider.gameObject); clickOnScript.currentlySelected = false; clickOnScript.ClickMe(); } } else { ClearSelection(); selectedObjects.Add(rayHit.collider.gameObject); clickOnScript.currentlySelected = true; clickOnScript.ClickMe(); } } } if (Input.GetMouseButtonUp(0) && Input.GetKey("left shift")) { mousePos2 = Camera.main.ScreenToViewportPoint(Input.mousePosition); //todo make it harder to accidently deselect perhaps hold shift and click if (Vector3.Distance(mousePos1, mousePos2) > 0.02f) { SelectObjects(); } } }
private void SelectObjects() { List <GameObject> remObjects = new List <GameObject>(); if (Input.GetKey(KeyCode.LeftControl) == false) { clearSelectedObjects(); } Rect selectRect = new Rect(mousePos1.x, mousePos1.y, mousePos2.x - mousePos1.x, mousePos2.y - mousePos1.y); foreach (GameObject obj in selectableObjects) { if (obj != null) { if (selectRect.Contains(Camera.main.WorldToViewportPoint(obj.transform.position), true)) { selectedObjects.Add(obj); ClickOn objClickOnScript = obj.GetComponent <ClickOn>(); objClickOnScript.currentlySelected = true; objClickOnScript.ClickMe(); } } else { remObjects.Add(obj); } } if (remObjects.Count > 0) { foreach (GameObject obj in remObjects) { selectableObjects.Remove(obj); } remObjects.Clear(); } }
private void LeftMouseUp() { Vector3 mousePosition = Input.mousePosition; endLeftMouse = cameraRaycaster.ScreenToViewportPoint(mousePosition); if ((startLeftMouse - endLeftMouse).sqrMagnitude > 0.005f) { ClearSelection(); SelectObs(); } else { bool hitted = Physics.Raycast (ray: cameraRaycaster.ScreenPointToRay(mousePosition), hitInfo: out hitInfo, maxDistance: float.MaxValue, layerMask: Clicklayer); if (hitted) { ClickOn obj = hitInfo.collider.GetComponent <ClickOn>(); if (obj != null) { ClearSelection(); obj.Select(); selectedObjects.Add(obj); } } else { Pointer.Instance.PutPointer(); SelectedActionCallback(); } } ResetMousePosition(); }
public void MoveUpdate() { if (TurnLogic.instance.currentCharacter != null) { clickOnScript = TurnLogic.instance.currentCharacter.GetComponent <ClickOn>(); if (Input.GetMouseButtonDown(0)) { RaycastHit rayHit; CharacterLogic character; //if rayhit hits an object if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out rayHit, Mathf.Infinity, clickablesLayer)) { if (rayHit.transform.GetComponent <CharacterLogic>() != null) { string enemy; if (TurnLogic.instance.currentCharacter.transform.tag != "Enemy") { enemy = "Enemy"; } else { enemy = "Ally"; } if (rayHit.transform.gameObject == TurnLogic.instance.currentCharacter) { character = clickOnScript.gameObject.GetComponent <CharacterLogic>(); //toggle on/off select clickOnScript.isSelected = !clickOnScript.isSelected; clickOnScript.ClickMe(); //highlight movement options if (clickOnScript.isSelected) { grid.HighlightMovement(grid.grid, Mathf.RoundToInt(clickOnScript.transform.position.x), Mathf.RoundToInt(clickOnScript.transform.position.z), clickOnScript.GetComponent <CharacterLogic>().move, Color.cyan); } else { grid.HighlightMovement(grid.grid, Mathf.RoundToInt(clickOnScript.transform.position.x), Mathf.RoundToInt(clickOnScript.transform.position.z), clickOnScript.GetComponent <CharacterLogic>().move, Color.white); } } if (clickOnScript.isSelected && (rayHit.transform.tag.Equals(enemy))) { if (clickOnScript.GetComponent <CharacterLogic>().WithinRange(rayHit.collider.gameObject) && !TurnLogic.instance.currentCharacter.GetComponent <CharacterLogic>().hasAttacked) { Debug.Log(clickOnScript.GetComponent <CharacterLogic>().Attack(rayHit.collider.gameObject)); TurnLogic.instance.currentCharacter.GetComponent <CharacterLogic>().hasAttacked = true; grid.HighlightMovement(grid.grid, Mathf.RoundToInt(clickOnScript.transform.position.x), Mathf.RoundToInt(clickOnScript.transform.position.z), clickOnScript.GetComponent <CharacterLogic>().move, Color.white); clickOnScript.isSelected = false; clickOnScript.ClickMe(); } //otherwise deselect else { grid.HighlightMovement(grid.grid, Mathf.RoundToInt(clickOnScript.transform.position.x), Mathf.RoundToInt(clickOnScript.transform.position.z), clickOnScript.GetComponent <CharacterLogic>().move, Color.white); clickOnScript.isSelected = false; clickOnScript.ClickMe(); } } else if (rayHit.transform.tag.Equals(enemy)) { } } } //if rayhit doesnt hit an object else if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out rayHit) && !TurnLogic.instance.currentCharacter.GetComponent <CharacterLogic>().hasMoved) { //if selected tile not occupied, un-highlight movement options and move character to clicked spot if ((rayHit.transform.tag != "Ally" || rayHit.transform.tag != "Enemy") && clickOnScript.isSelected) { grid.HighlightMovement(grid.grid, Mathf.RoundToInt(clickOnScript.transform.position.x), Mathf.RoundToInt(clickOnScript.transform.position.z), clickOnScript.GetComponent <CharacterLogic>().move, Color.white); MoveChar(rayHit.point); //TurnLogic.instance.currentCharacter.GetComponent<CharacterLogic>().hasMoved = true; clickOnScript.isSelected = false; clickOnScript.ClickMe(); clickOnScript.GetComponent <CharacterLogic>().turnEnd = true; } } } if (TurnLogic.instance.currentCharacter.GetComponent <CharacterLogic>().hasAttacked) { TurnLogic.instance.endTurn(); } } }
// Update is called once per frame void Update() { if (Input.GetMouseButtonDown(2)) { ClearSelection(); } if (Input.GetMouseButtonDown(0)) { mousePos1 = Camera.main.ScreenToViewportPoint(Input.mousePosition); // RaycastHit rayHit; if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out rayHit, Mathf.Infinity, clickablesLayer)) { ClickOn clickOnScript = rayHit.collider.GetComponent <ClickOn>(); if (Input.GetKey("left ctrl")) { if (clickOnScript.currentlySelected == false) { selectedObjects.Add(rayHit.collider.gameObject); clickOnScript.currentlySelected = true; clickOnScript.ClickMe(); } else { selectedObjects.Remove(rayHit.collider.gameObject); clickOnScript.currentlySelected = false; clickOnScript.ClickMe(); } } else { ClearSelection(); selectedObjects.Add(rayHit.collider.gameObject); clickOnScript.currentlySelected = true; clickOnScript.ClickMe(); } } } if (Input.GetMouseButtonUp(0)) { mousePos2 = Camera.main.ScreenToViewportPoint(Input.mousePosition); if (mousePos1 != mousePos2) { SelectObjects(); } } if (Input.GetMouseButton(1) && selectedUnits.Count > 0) { var camRay = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(camRay, out rayHit)) { if (rayHit.transform.CompareTag("Ground")) { foreach (var selectableObj in selectedUnits) { selectableObj.MoveUnit(rayHit.point); } } else if (rayHit.transform.CompareTag("EnemyUnit")) { foreach (var selectableObj in selectedUnits) { selectableObj.SetNewTarget(rayHit.transform); } } } } }
// Update is called once per frame void Update() { if (move) { Move(); } if (Input.GetMouseButtonDown(0)) { mousePos1 = Camera.main.ScreenToViewportPoint(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hit, Mathf.Infinity, Selectables)) { ClickOn click = hit.collider.GetComponent <ClickOn>(); if (Input.GetKey("left ctrl")) { if (!click.currentlySelected) { selectedObjects.Add(hit.collider.gameObject); click.currentlySelected = true; click.OnClick(); } else { selectedObjects.Remove(hit.collider.gameObject); click.currentlySelected = false; click.OnClick(); } } else { ClearSelection(); selectedObjects.Add(hit.collider.gameObject); click.currentlySelected = true; click.OnClick(); Debug.Log(selectedObjects[0]); } } else { ClearSelection(); } } else if (Input.GetMouseButtonDown(1)) { if (selectedObjects.Count > 0) { MoveObjects(); } } if (Input.GetMouseButtonUp(0)) { mousePos2 = Camera.main.ScreenToViewportPoint(Input.mousePosition); if (mousePos1 != mousePos2) { SelectObjects(); rayh.point = Vector3.zero; } } }
public void AddClickBack(ClickOn click) { btnClick = click; }
private void CardToAttach_CardDrop(ClickOn card) { Debug.Log("Card dropped over play area"); }
void Update() { if (agent != null && agent.isOnNavMesh) { float dist = agent.remainingDistance; if (dist != Mathf.Infinity && agent.pathStatus == NavMeshPathStatus.PathComplete && dist - agent.stoppingDistance <= 0) { offensivePlaceablesRef.moveToTarget = true; } else { offensivePlaceablesRef.moveToTarget = false; } } if (Input.GetMouseButtonDown(0)) { foreach (GameObject selectObjects in selectableObjects) { clearSelection(); } } if (Input.GetMouseButtonDown(1)) { foreach (GameObject unit in selectedObjects) { offensivePlaceablesRef = unit.GetComponent <OffensivePlaceables>(); offensivePlaceablesRef.moveToTarget = false; agent = unit.GetComponent <NavMeshAgent>(); agent.speed = 50; agent.SetDestination(GetPointUnderCursor()); } } //Shoots a ray and if it hits a unit makes the unit selected if (Input.GetMouseButtonDown(0)) { mousePos1 = Camera.main.ScreenToViewportPoint(Input.mousePosition); RaycastHit rayHit; if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out rayHit, Mathf.Infinity, clickablesLayer, QueryTriggerInteraction.Collide)) { ClickOn clickOnScript = rayHit.collider.GetComponent <ClickOn>(); if (clickOnScript != null) { if (Input.GetKey("left ctrl")) { if (clickOnScript.currentlySelected == false) { selectedObjects.Add(rayHit.collider.gameObject); clickOnScript.currentlySelected = true; clickOnScript.ClickMe(); } else { selectedObjects.Remove(rayHit.collider.gameObject); clickOnScript.currentlySelected = false; clickOnScript.ClickMe(); } } else { clearSelection(); selectedObjects.Add(rayHit.collider.gameObject); clickOnScript.currentlySelected = true; clickOnScript.ClickMe(); } } } } if (Input.GetMouseButtonUp(0)) { mousePos2 = Camera.main.ScreenToViewportPoint(Input.mousePosition); if (mousePos1 != mousePos2) { SelectObjects(); } } }
private void Start() { destination = transform.position; unit = GetComponent <ClickOn>(); panel = BuildingPanel.instance; }
// Update is called once per frame void Update() { RaycastHit rayHit; // rightclick if (Input.GetMouseButtonUp(1)) { // get clicked point in the world Physics.Raycast( Camera.main.ScreenPointToRay(Input.mousePosition), out rayHit ); // find closest point on nav mesh within 5u NavMeshHit navHit; var found = NavMesh.SamplePosition( rayHit.point, out navHit, 5f, NavMesh.AllAreas ); if (!found) { Debug.LogError("couldn't find suitable point"); return; } // move selected agents to point and reset selection if (selectedObjects.Count > 0) { foreach (var obj in selectedObjects) { obj.selected = false; obj.SetDestination(navHit.position); } selectedObjects.Clear(); } } // left click else if (Input.GetMouseButtonDown(0)) { // find clicked object var found = Physics.Raycast( Camera.main.ScreenPointToRay(Input.mousePosition), out rayHit, clickableLayer ); if (!found) { return; } ClickOn clickOnScript = rayHit.collider.gameObject.GetComponent <ClickOn>(); if (clickOnScript == null) { return; } // toggle the clicked object if (!clickOnScript.selected) { selectedObjects.Add(clickOnScript); } else { selectedObjects.Remove(clickOnScript); } clickOnScript.selected = !clickOnScript.selected; } }
// Update is called once per frame void Update() { anim = GetComponent <Animator> (); agent = GetComponent <NavMeshAgent> (); ClickOn clickOnScript = GetComponent <ClickOn> (); Click clickScript = Camera.main.GetComponent <Click> (); if (clickOnScript.currentlySelected == true) { if (Input.GetMouseButtonDown(0)) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); // promień kamera-pozycja myszy RaycastHit hitInfo; if (Physics.Raycast(ray.origin, ray.direction, out hitInfo)) // promień jebnął w coś czy nie ^ { Vector3 targetPosition = new Vector3(Mathf.Round(hitInfo.point.x), Mathf.Round(hitInfo.point.y), Mathf.Round(hitInfo.point.z)); targetMarker.SetActive(true); anim.SetBool("move", true); tppc = clickScript.selectedObjects.IndexOf(gameObject); if (tppc <= 5) { tpp = clickScript.selectedObjects.IndexOf(gameObject) * 3; tpx = targetPosition.x + tpp; tpy = targetPosition.y; tpz = targetPosition.z; } if (tppc <= 10 && tppc > 5) { tpp = (clickScript.selectedObjects.IndexOf(gameObject) - 5) * 3; tpx = targetPosition.x + tpp; tpy = targetPosition.y; tpz = targetPosition.z - 3; } if (tppc <= 15 && tppc > 10) { tpp = (clickScript.selectedObjects.IndexOf(gameObject) - 10) * 3; tpx = targetPosition.x + tpp; tpy = targetPosition.y; tpz = targetPosition.z - 6; } if (tppc <= 20 && tppc > 15) { tpp = (clickScript.selectedObjects.IndexOf(gameObject) - 15) * 3; tpx = targetPosition.x + tpp; tpy = targetPosition.y; tpz = targetPosition.z - 9; } if (tppc < 25 && tppc > 20) { tpp = (clickScript.selectedObjects.IndexOf(gameObject) - 20) * 3; tpx = targetPosition.x + tpp; tpy = targetPosition.y; tpz = targetPosition.z - 12; } if (tppc < 30 && tppc > 25) { tpp = (clickScript.selectedObjects.IndexOf(gameObject) - 25) * 3; tpx = targetPosition.x + tpp; tpy = targetPosition.y; tpz = targetPosition.z - 15; } if (tppc < 35 && tppc > 30) { tpp = (clickScript.selectedObjects.IndexOf(gameObject) - 30) * 3; tpx = targetPosition.x + tpp; tpy = targetPosition.y; tpz = targetPosition.z - 18; } if (tppc < 40 && tppc > 35) { tpp = (clickScript.selectedObjects.IndexOf(gameObject) - 35) * 3; tpx = targetPosition.x + tpp; tpy = targetPosition.y; tpz = targetPosition.z - 21; } Vector3 tmp = new Vector3(tpx, tpy, tpz); targetMarker.transform.position = tmp; agent.destination = tmp; } } } if (Vector3.Distance(transform.position, targetMarker.transform.position) < 2.0001f) // usuwanie znacznika przy 1 jednostce { targetMarker.SetActive(false); anim.SetBool("move", false); } if (clickOnScript.currentlySelected == false) { targetMarker.SetActive(false); } }
void Update() { if (selectedObjects.Count > 0) { if (selectedObjects[0].GetComponent <Human>() != null) { WC.ActivateScreen(selectedObjects[0].GetComponent <Human>().screen); WC.ChangeText(selectedObjects[0].GetComponent <Human>().nameToDisplay, selectedObjects[0].GetComponent <Human>().infoToDisplay); } } if (Input.GetMouseButtonDown(0) && !EventSystem.current.IsPointerOverGameObject()) { pc.CancelEverything(); mousePos1 = Camera.main.ScreenToViewportPoint(Input.mousePosition); RaycastHit rayHit; if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out rayHit, Mathf.Infinity, clickablesLayer)) { WC.ActivateScreen(rayHit.collider.GetComponent <Human>().screen); WC.ChangeText(rayHit.collider.GetComponent <Human>().nameToDisplay, selectedObjects[0].GetComponent <Human>().infoToDisplay); ClickOn clickOnScript = rayHit.collider.GetComponent <ClickOn>(); if (Input.GetKey(KeyCode.LeftShift)) { if (clickOnScript.currentlySelected == false) { selectedObjects.Add(rayHit.collider.gameObject); clickOnScript.currentlySelected = true; clickOnScript.ClickMe(); } else { selectedObjects.Remove(rayHit.collider.gameObject); clickOnScript.currentlySelected = false; clickOnScript.ClickMe(); } } else { ClearSelection(); selectedObjects.Add(rayHit.collider.gameObject); clickOnScript.currentlySelected = true; clickOnScript.ClickMe(); } } else if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out rayHit, Mathf.Infinity, clickableEnemiesLayer)) { ClickOn clickOnScript = rayHit.collider.GetComponent <ClickOn>(); WC.ActivateScreen(rayHit.collider.GetComponent <Human>().screen); WC.ChangeText(rayHit.collider.GetComponent <Human>().nameToDisplay, rayHit.collider.GetComponent <Human>().infoToDisplay); WC.AssignButtons(rayHit.collider.gameObject); ClearSelection(); if (rayHit.collider.gameObject.GetComponent <ClickOn>() != null) { selectedObjects.Add(rayHit.collider.gameObject); rayHit.collider.gameObject.GetComponent <ClickOn>().currentlySelected = true; rayHit.collider.gameObject.GetComponent <ClickOn>().ClickMe(); } } else if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out rayHit, Mathf.Infinity, obstaclesLayer)) { ClickOn clickOnScript = rayHit.collider.GetComponent <ClickOn>(); if (rayHit.collider.tag == "Building") { WC.ActivateScreen(rayHit.collider.GetComponent <Building>().screen); WC.ChangeText(rayHit.collider.GetComponent <Building>().nameToDisplay, rayHit.collider.GetComponent <Building>().infoToDisplay); WC.ChangePercentageBar(rayHit.collider.gameObject); WC.AssignButtons(rayHit.collider.gameObject); ClearSelection(); if (rayHit.collider.gameObject.GetComponent <ClickOn>() != null) { selectedObjects.Add(rayHit.collider.gameObject); rayHit.collider.gameObject.GetComponent <ClickOn>().currentlySelected = true; rayHit.collider.gameObject.GetComponent <ClickOn>().ClickMe(); } } } else { ClearSelection(); WC.ActivateScreen(WC.buildScreen); WC.ChangeText("", ""); } } if (Input.GetMouseButtonUp(0)) { mousePos2 = Camera.main.ScreenToViewportPoint(Input.mousePosition); if (mousePos1 != mousePos2) { SelectObjects(); } } if (Input.GetKeyDown(KeyCode.Escape)) { ClearSelection(); WC.ActivateScreen(WC.buildScreen); WC.ChangeText("", ""); } }