private void OnLeftMouseSelected(LeftMouseSelectEvent objectSelected) { gameObjectSelected = null; foreach (Transform enemy in transform) { if (objectSelected.selectedGameObject == enemy.gameObject) { gameObjectSelected = enemy.gameObject; } else if (enemy.gameObject.GetComponent <MeshFilter>() != null) { originalMat = Resources.Load("Mat/AttackAble", typeof(Material)) as Material; MeshRenderer meshRenderer = enemy.GetComponent <MeshRenderer>(); // Get the current material applied on the GameObject Material oldMaterial = meshRenderer.material; // Set the new material on the GameObject meshRenderer.material = originalMat; } } if (gameObjectSelected != null) { highlightMat = Resources.Load("Mat/HighlightMat", typeof(Material)) as Material; MeshRenderer meshRenderer = gameObjectSelected.GetComponent <MeshRenderer>(); // Get the current material applied on the GameObject Material oldMaterial = meshRenderer.material; // Set the new material on the GameObject meshRenderer.material = highlightMat; objectToMove = true; } else { objectToMove = false; } }
void OnEnable() { InteractWithGameObject.RegisterListener(OnInteracting); PlayerAttackEvent.RegisterListener(OnUnitAttacked); LeftMouseSelectEvent.RegisterListener(OnLeftMouseSelected); RightMouseSelectEvent.RegisterListener(OnRightClick); }
private void CameraOnScreenClick() { if (Input.GetMouseButtonDown(0)) { currentSelectedObject = null; ray = cam.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out leftMouseHit)) { //Debug.DrawRay(new Vector3(0, 1, 0), leftMouseHit.point, Color.red, duration: 10); currentSelectedObject = leftMouseHit.transform.gameObject; Debug.Log("Selected Object: " + leftMouseHit.transform.gameObject); LeftMouseSelectEvent leftMouseSelect = new LeftMouseSelectEvent(); leftMouseSelect.selectedGameObject = leftMouseHit.transform.gameObject; leftMouseSelect.FireEvent(); } } if (Input.GetMouseButtonDown(1)) { Ray ray = cam.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out RaycastHit rightMouseHit)) { RightMouseSelectEvent rightMouseClick = new RightMouseSelectEvent(); rightMouseClick.rightClickGameObject = rightMouseHit.transform.gameObject; rightMouseClick.mousePosition = rightMouseHit.point; rightMouseClick.clicker = currentSelectedObject; rightMouseClick.FireEvent(); Debug.Log(rightMouseHit.transform.gameObject + " was right clicked"); } } }
void OnDisable() { UnitDeathEvent.UnregisterListener(OnEnemyUnitDeath); EnemyAttackEvent.UnregisterListener(OnEnemyUnitAttack); LeftMouseSelectEvent.UnregisterListener(OnLeftMouseSelected); RightMouseSelectEvent.UnregisterListener(OnRightMouseClick); PlayerAttackEvent.UnregisterListener(OnAttacked); }
private void OnLeftMouseSelected(LeftMouseSelectEvent objectSelected) { if (objectSelected.selectedGameObject == transform.gameObject) { gameObjectSelected = true; } else { gameObjectSelected = false; } }