Trouble adding score when specific object is clicked. (C#)

Trouble adding score when specific object is clicked. (C#)

I’m learning Unity, C#, and attempting to make a Hidden Object Game concept. In other words, I’m a total n00b at this. :slight_smile:

What I have done is assign specific objects with the tag, “HOGitem”. What I want to do is accrue a score when a HOGitem is clicked on and only when those specific items are clicked on. Here’s the script:

using UnityEngine;
using System.Collections;

public class ScoreManager : MonoBehaviour {

	public float pointsPerHOG = 10;
	private float score;
	public GameObject HOGobj;

	// Use this for initialization
	void Start () {
		HOGobj = GameObject.FindWithTag("HOGitem");
	}
	
	// Update is called once per frame
	void Update () {
          
          //The intent is to have only the HOGobj add to the score when clicked.
          if(Input.GetMouseButtonDown(0)){

                if(HOGobj) {
		AddPoints (pointsPerHOG);
         }
    }
}

	void OnGUI() {
		GUILayout.Label("score: " + score.ToString("0"));
	}


	void AddPoints(float points){
		score += points;
	}

}

This will make everything with a collider add to the score until the items that have the tag “HOGitem” are destroyed. I’m a little slow and can’t figure out how to use what I researched online to my advantage. I found this:

    void Update(){
    if (Input.GetMouseButtonDown(0)){ // if left button pressed...
    Ray ray = camera.ScreenPointToRay(Input.mousePosition);
    RaycastHit hit;
    if (Physics.Raycast(ray, out hit)){
    // the object identified by hit.transform was clicked
    // do whatever you want
    }
    }
    }

But I have no idea how to make it work so that it “Does whatever I want” only when I click on the items tagged with “HOGitem”. I’m learning quite a lot, but apparently not fast enough. Any help with this is greatly appreciated.

Thanks,

Mike

I don’t believe I facepalmed this hard before. I figured it out and apologize for wasting anyone’s time. THIS:

	void Update () {

		if (Input.GetMouseButtonDown(0)) {
			Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
			RaycastHit hit;
			// Casts the ray and get the first game object hit
			Physics.Raycast(ray, out hit);
			if (hit.collider.tag == "HOGitem") {	
			AddPoints(pointsPerHOG);
			}
		}

solved my problem.