Search Unity

Question Should this work like I am expecting?

Discussion in '2D' started by Loading7088, May 13, 2023.

  1. Loading7088

    Loading7088

    Joined:
    May 5, 2023
    Posts:
    9
    Hello, I have a simple script on an enemy that when clicked turns the colour to a different colour and changes the tag. But for some reason, it barely works and is almost impossible to use, as weather or not it does what I want it to do seems to depend on the engines mood.. heres the code.


    Code (csharp):
    1. using System.Collections;
    2. using System.Collections.Generic;
    3. using UnityEngine;
    4.  
    5. public class Hurtful : MonoBehaviour
    6. {
    7.     public Color newColour;
    8.     public SpriteRenderer rend;
    9.  
    10.    
    11.     private void OnMouseEnter()
    12.     {
    13.         if (Input.GetMouseButtonDown(0))
    14.         {
    15.             // No more die, and now green.
    16.             gameObject.tag = "Safe";
    17.             rend.color = newColour;
    18.         }
    19.     }
    20. }
     
  2. MelvMay

    MelvMay

    Unity Technologies

    Joined:
    May 24, 2013
    Posts:
    11,500
    Well you only enter the object once and you have to be hitting the mouse button at the same time; seems not too likely.

    Shouldn't you be using OnMouseOver not simply when you very first move the mouse over a collider?

    Edit: Okay so this is essentially a duplicate of: https://forum.unity.com/threads/mouse-trigger.1433656/. Did you not use OnMouseDown then as suggested there?
     
  3. Loading7088

    Loading7088

    Joined:
    May 5, 2023
    Posts:
    9

    Ohhhhhhhhhh I see my issue lol. I let the autofill fill it and I didnt pay attention, I should probably not be coding while tired. thanks.
     
    MelvMay likes this.