Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • 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 /
avatar image
0
Question by gaetzan · Apr 27, 2016 at 08:26 PM · selectingdeselect

selecting, deselecting from a mousemanager script

so this script is made that when you select an gameobject that it turns blue to indicate that it is selected and then turn white when another object gets selected.

this mostly works, in that yes, it does change the color but only when you select another object, you mouse over the previously selected object.

now my question is, how can i get it to update the color immediatly when i select another object?

 using UnityEngine;
 using System.Collections;
 using UnityEngine.EventSystems;
 
 public class mouseManager : MonoBehaviour {
 
     movement selectedUnit;
 
     // trSelect stores the currently selected unit when one gets selected
     static private Transform trSelect = null; 
     private bool selected = false;
 
     // Update is called once per frame
     void Update () {
 
 
         // is the mouse over a unity UI element?
         /*if (EventSystem.current.IsPointerOverGameObject ()) {
             // it is, so don't do any custom mouse stuff
             return;
         }*/
 
         // casts a ray from the mouse in unity world units so it know where the mouse is
         Ray ray = Camera.main.ScreenPointToRay ( Input.mousePosition );
 
         // contains the data of whatever gets hit by the ray
         RaycastHit hitInfo;
 
 
 
         if(Physics.Raycast(ray, out hitInfo) ){
             GameObject hitObject = hitInfo.collider.gameObject;
             if (hitObject.transform != trSelect && selected) {
                 selected = false;
             }
             // if the gameobject has the "movement" script on it execute the function
             if (hitObject.GetComponent<movement>() != null) {
                 MouseOver_Unit (hitObject);            
             }
             // if the gameobjects name is plane execute the function
             if (hitObject.name == "Plane" != false) {
                 MoveUnit (hitInfo);
             } 
         }
     }
 
     void MouseOver_Unit(GameObject hitObject){
         // gets the meshrenderer so you can change the color
         MeshRenderer mr = hitObject.GetComponent<MeshRenderer> ();
 
         if (Input.GetMouseButtonDown (0)) {
             // get the movement script so you can move the currently selected gameobject
             selectedUnit = hitObject.GetComponent<movement> ();
             // store the gameobject's transform in trSelect
             trSelect = hitObject.transform;
 
             Debug.Log (trSelect.transform);
             // toggle the selected bool to true
             selected = true;
             //change the color to indicate the gameobject is selected.
             mr.material.color = Color.blue;
 
             // if you click another gameobject than the currently selected one
             // and selected is true, set selected to false.
             // and set the color back to white
         } else if (hitObject.transform != trSelect && !selected) {
             mr.material.color = Color.white;
         }
 
     }
 
     void MoveUnit(RaycastHit hitInfo){
         // checks if a gameobject is selected
         if (selectedUnit != null) {
             if (Input.GetMouseButtonDown (0)) {
                 // uses the "destination" function from the movement script
                 // and uses hitinfo to know where to move the gameobject on the plane
                 selectedUnit.destination = hitInfo.point;
             }
         }
 
     }
         
 }
 
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

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

3 People are following this question.

avatar image avatar image avatar image

Related Questions

Selecting and unselecting objects with raycast 2 Answers

how to select and deselct an instantiated objects. 3 Answers

Selecting objects 2 Answers

Unity5 UI - How to trigger button click event while preventing menu item deselect event? 1 Answer

Making a hand move with the mouse 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges