void OnMouseExit() { if (!enabled) { return; } editState state = _editor.GetState(); if (state == editState.Create) { _renderer.material.color = restColor; } if (transform.parent.childCount > 1) { for (var i = 0; i < transform.parent.childCount; i++) { if (state == editState.Edit && transform.parent.parent.gameObject == _editor._selected) { transform.parent.GetChild(i).gameObject.GetComponent <MeshRenderer>().material.color = editColor; } else { transform.parent.GetChild(i).gameObject.GetComponent <MeshRenderer>().material.color = restColor; } } } else { } }
void OnMouseDown() { if (!enabled) { return; } editState state = _editor.GetState(); if (state == editState.Create) { if (this.transform.parent.name == "QFloor(Clone)") { String clicked_object = this.transform.parent.name; if (clicked_object == "QFloor(Clone)" || clicked_object == "QFloor (1)") { //editor.PlaceQubit(_transform.position + Vector3.up * 5f); _editor.PlaceQubitByIndex(_qubit.index); } } else { var newIndex = _qubit.index + pointsTowards; //editor.PlaceQubit(newPos); _editor.PlaceQubitByIndex(newIndex); } _renderer.material.color = restColor; //editor.SetState(editState.Edit); } else if (state == editState.Edit || state == editState.Rest) { if (state == editState.Rest) { _editor.SetState(editState.Edit); } if (_editor._selected) { _editor._selected.GetComponent <Qubit>().Deselect(); } // Make sure we're not selecting part of the editor if (!this.transform.parent.transform.parent.gameObject.GetComponent <Editor>()) { //_editor._selected = transform.parent.transform.parent.gameObject; _editor.SelectQubit(transform.parent.transform.parent.gameObject); for (int i = 0; i < transform.parent.childCount; i++) { transform.parent.GetChild(i).gameObject.GetComponent <availableFace>()._renderer.material.color = editColor; } } } }
public void OnModeSwitch(editState state) { if (state == editState.Create) { _renderer.material.color = restColor; } else { if (transform.parent.childCount > 1) { for (var i = 0; i < transform.parent.childCount; i++) { transform.parent.GetChild(i).gameObject.GetComponent <MeshRenderer>().material.color = restColor; } } } }
public void SetState(editState newState) { //Debug.Log("state now equal to " + newState); var oldState = _state; Ray rayToFace = _camera.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(rayToFace, out RaycastHit currentFace)) { if (currentFace.transform.gameObject.GetComponent <availableFace>()) { currentFace.transform.gameObject.GetComponent <availableFace>().OnModeSwitch(oldState); } } if (newState != editState.Edit) { if (_selected) { _selected.GetComponent <Qubit>().Deselect(); _selected = null; } Destroy(transformInstance); } if (newState == editState.Create) { Destroy(GhostBlock); GhostBlock = MakeGhostBlock(placingQubit); } else // (newState != editState.Create) { Destroy(GhostBlock); GhostBlock = null; } if (newState == editState.Rest && oldState == editState.Create) { Destroy(transformInstance); } _state = newState; }
void OnMouseEnter() { if (!enabled) { return; } editState state = _editor.GetState(); if (state == editState.Create) { // _renderer.material.color = hoverColor; _editor.GhostBlock.transform.position = _editor.indexToPosition(_qubit.index + pointsTowards); } /*else * { * if (transform.parent.childCount > 1) * { * if (_editor._selected != _qubit.gameObject) * { * for (var i = 0; i < transform.parent.childCount; i++) * { * transform.parent.GetChild(i).gameObject.GetComponent<MeshRenderer>().material.color = * hoverColor; * } * } * } * else * { * _renderer.material.color = restColor; * } * } */ }
private void OnMouseOver() { if (!enabled) { return; } editState state = _editor.GetState(); if (state == editState.Create) { if (_editor.level != null) { switch (_editor.placingQubit.name) { case "QRails-v4": if (_editor.level.GetResource(0) == 0) { _renderer.material.color = invalidColor; } else { _renderer.material.color = hoverColor; } break; case "QTurn-v3": if (_editor.level.GetResource(1) == 0) { _renderer.material.color = invalidColor; } else { _renderer.material.color = hoverColor; } break; case "QSlant-v4": if (_editor.level.GetResource(2) == 0) { _renderer.material.color = invalidColor; } else { _renderer.material.color = hoverColor; } break; default: break; } } else { _renderer.material.color = hoverColor; } } else { if (_editor._selected == _qubit.gameObject) { for (var i = 0; i < transform.parent.childCount; i++) { transform.parent.GetChild(i).gameObject.GetComponent <MeshRenderer>().material.color = editColor; } } else if (transform.parent.childCount > 1 && !_qubit.editable) { for (var i = 0; i < transform.parent.childCount; i++) { transform.parent.GetChild(i).gameObject.GetComponent <MeshRenderer>().material.color = selectColor; } } else { _renderer.material.color = restColor; } } }