void LateUpdate() { Vector3 direction = new Vector3(cameraPosition.x, cameraPosition.y, -distance); Quaternion rotation = Quaternion.Euler(radius.y, radius.x, 0.0f); transform.position = rotation * direction + target.transform.position; transform.rotation = rotation; if (Physics.Linecast(target.transform.position + new Vector3(0, 1.2f, 0), transform.position, out cameraHit) && cameraHit.collider.isTrigger == false) { transform.position = cameraHit.point; } if (Physics.Raycast(transform.position, transform.forward, out objectHit, distance + range)) { this.objectCollider = (objectHit.collider.gameObject).GetComponent <TakingObject>(); if (objectCollider != null) { this.objectCollider.GetComponent <Renderer>().material.color = Color.red; /// TODO (by RhAnjiE) - "Change selection type" textPosition = GetComponent <Camera>().WorldToScreenPoint(objectHit.transform.position); if (Input.GetKeyDown(KeyCode.E)) { (this.objectCollider).Activate(); //... } return; } } }
//bool isRadius = false; void Update() { radius.x += Input.GetAxis("Mouse X") * speedX; radius.y -= Input.GetAxis("Mouse Y") * speedY; distance -= Input.GetAxis("Mouse ScrollWheel") * scrollSpeed; distance = Mathf.Clamp(distance, minDistance, maxDistance); radius.y = Mathf.Clamp(radius.y, -10.0f, 40.0f); if (this.objectCollider != null) { (this.objectCollider.GetComponent <Renderer>()).material.color = this.objectCollider.materialColor; this.objectCollider = null; } }