// Ray cast to target position void UpdateRaycast() { // Reset selected player this.selectedEntity = null; Ray ray = cam.ViewportPointToRay(cameraMode.GetCursorPosition3D()); // Do the raycast if (Physics.Raycast(ray, out raycastHit, Config.instance.raycastMaxDistance)) { // TODO: Targeting info GameObject targetObject = raycastHit.collider.gameObject; var targetEntity = targetObject.GetComponent <Entity>(); if (targetEntity != this) { if (targetEntity != null) { if (party == null || targetEntity.party != party) { crossHair.color = Color.red; } else { crossHair.color = Color.green; } crossHair.width = (int)(crossHair.defaultWidth * 1.1f); crossHair.height = (int)(crossHair.defaultHeight * 1.1f); // Remove hitPoint Y raycastHitPointOnGround = new Vector3(raycastHit.point.x, targetEntity.myTransform.position.y, raycastHit.point.z); this.selectedEntity = targetEntity; } else { crossHair.color = crossHair.defaultColor; crossHair.width = crossHair.defaultWidth; crossHair.height = crossHair.defaultHeight; raycastHitPointOnGround = raycastHit.point; } raycastSuccess = true; } else { crossHair.color = crossHair.defaultColor; raycastSuccess = false; } } else { crossHair.color = crossHair.defaultColor; raycastSuccess = false; } }