void SelectColumn() { RaycastHit hitInfo = new RaycastHit(); //Debug.Log(hitInfo); //Debug.Log(hitInfo.ToString()); if (!CheckSelection(out hitInfo)) { return; } DisablableLogs("Hit " + hitInfo.transform.gameObject.name); // Get parent of the parent, while checking if it exists ColumnBehaviour column = GetColumn(hitInfo); DisablableLogs(column); if (!column) { return; } // Select column DisablableLogs("Column found!"); if (column.fixedPosition) { DisablableLogs("Cannot move column"); return; } if (selectedColumn) { selectedColumn.Deselect(); } selectedColumn = column; selectedColumn.Select(); }
// Update is called once per frame void Update() { //if (Input.GetKeyDown(KeyCode.Escape)) if (Input.GetButtonDown("DeselectColumn")) { if (selectedColumn != null) { selectedColumn.Deselect(); selectedColumn = null; } } // If no column is selected, and we click on a column, then it is the new selected column if (Input.GetButtonDown("SelectColumn")) { DisablableLogs("Got button selectColumn. leftClickPlacement = " + leftClickPlacement.ToString()); if (leftClickPlacement) { // Used for touchscreen interface PlaceColumn(); } else { SelectColumn(); } } else if (Input.GetButtonDown("PlaceColumn")) { PlaceColumn(); } }
private void OnTriggerExit(Collider other) { if (((1 << other.gameObject.layer) & columnMask) != 0) { hitColumnSide = false; stuckColumn = null; } }
private void DeselectColumn() { //selectedColumn.selected = false; if (selectedColumn) { selectedColumn.RemoveHighlight(); } selectedColumn = null; }
private void LaunchHand() { RetractHand(true); grabbedColumn = selectedColumn; columnHitOffset = hitPoint - grabbedColumn.transform.position; connectFromPoint = controllerPose.transform.position; handTime = 0; //PlaySound(0, 0); }
private void RetractHand(bool instant) { grabbedColumn = null; handTime = 0; if (instant) { connectFromPoint = controllerPose.transform.position; } else { connectFromPoint = hand.transform.position; } }
private void OnTriggerEnter(Collider other) { if (((1 << other.gameObject.layer) & columnMask) != 0) { if (stuckColumn && !isDestroyed) { DestroySelf(stuckColumn.movedBySource); } else { ColumnBehaviour column = other.gameObject.GetComponent <ColumnBehaviour>(); if ((column.isUpColumn && transform.position.y > column.platform.transform.position.y) || (!column.isUpColumn && transform.position.y < column.platform.transform.position.y)) { stuckColumn = column; yDiff = transform.position.y - stuckColumn.transform.position.y; } else { hitColumnSide = true; pushedAway = false; } } } else if ((((1 << other.gameObject.layer) & forceFieldMask) != 0) && !hitColumnSide) { pushedAway = true; pushHitpoint = other.gameObject.transform.position; pushAwayDir = other.gameObject.transform.parent.transform.forward; if (null != anim) { anim.SetTrigger("ForceFieldHit"); PlaySound(Random.Range(0, clipArray.Length + 5), 0); } } }
private void SelectColumn(GameObject column) { selectedColumn = column.GetComponent <ColumnBehaviour>(); //selectedColumn.selected = true; selectedColumn.Highlight(); }