• Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
This question was closed Dec 02, 2016 at 09:23 PM by gustavkc for the following reason:

The question is answered, right answer was accepted

avatar image
0
Question by gustavkc · Dec 04, 2016 at 07:42 AM · physicsraycastcursorloopsphysics.raycast

Change game-cursor on gameobjects within range

Hi.

I have a problem with the following code:

 using UnityEngine;
 using System.Collections;
 using UnityEngine.EventSystems;
 
 public class Move : MonoBehaviour
 {
     public bool Cursor_enemy = false;
 
     public float radius = 50f;
     public  Collider[] colliders;
     public LayerMask mask;
 
     void LateUpdate() {
 
         Ray ray;
         RaycastHit hit;
         ray = Camera.main.ScreenPointToRay(Input.mousePosition);
         colliders = Physics.OverlapSphere (transform.position, radius, mask);
 
         foreach (Collider col in colliders) {
             if (Physics.Raycast(ray, out hit)) {
                 if (hit.collider == col) {
                     Cursor_enemy = true;
                 } else if (hit.collider != col) {
                     Cursor_enemy = false;
                 }
             }
         }
 
         if (Cursor_enemy == true) {
             GameObject.Find ("Canvas").GetComponent<InGameCursor> ().enemy_target = true;
         } else {
             GameObject.Find ("Canvas").GetComponent<InGameCursor> ().enemy_target = false;
         }
     }

This code change the game-cursor when it's hovering the first gameobject in the array of colliders found within a radius of 50 units, but it doesn't change the game-cursor when it's hovering any other gameobject that's within 50 units also.

Am I using a wrong method here?

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

0 Replies

  • Sort: 

Welcome to Unity Answers

The best place to ask and answer questions about development with Unity.

To help users navigate the site we have posted a site navigation guide.

If you are a new user to Unity Answers, check out our FAQ for more information.

Make sure to check out our Knowledge Base for commonly asked Unity questions.

If you are a moderator, see our Moderator Guidelines page.

We are making improvements to UA, see the list of changes.



Follow this Question

Answers Answers and Comments

3 People are following this question.

avatar image avatar image avatar image

Related Questions

Raycast does not work with touch input but works well with mouse input why? 0 Answers

Why does my Physics.Raycast not hit my BoxCollider? 4 Answers

Slant Physics Raycast Implementation 0 Answers

Maintain object position when using raycasting to multiple height 2 Answers

Linecast, rotate end point relative to objects rotation 1 Answer

  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges