Question by
Crazyplapi · May 12, 2019 at 06:06 PM ·
gameobjectoncollisionentertags
How can I make sure that the gameObject that collides with the FPSController is the one I need?
I have this script:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class takeMap : MonoBehaviour
{
public int pickUp = 0;
public GameObject[] items;
public bool collisionChecker;
public bool grandPaChecker;
public bool manChecker;
public GameObject man;
public GameObject grandpa;
public string text2;
public int score;
private void Start()
{
activateItem(0);
collisionChecker = false;
grandPaChecker = false;
manChecker = false;
}
private void Update()
{
if (Input.GetKeyDown(KeyCode.Alpha1))
{
activateItem(0);
}
else if (Input.GetKeyDown(KeyCode.Alpha2))
{
if (pickUp == 1)
activateItem(1);
}
else if (Input.GetKeyDown(KeyCode.Alpha3))
{
if(pickUp == 2)
activateItem(2);
}
else if (Input.GetKeyDown(KeyCode.Alpha4))
{
activateItem(3);
}
if (items[1].active == true)
if(Input.GetKeyDown(KeyCode.Q))
if(collisionChecker = true)
if (manChecker == true)
{
pickUp = 0;
activateItem(0);
(man.GetComponent(text2) as MonoBehaviour).enabled = false;
//progress0 color green
Image progressImage = GameObject.Find("progress0").GetComponent<Image>();
Color newColor = progressImage.color;
newColor = Color.green;
progressImage.color = newColor;
score++;
}
if (items[2].active == true)
if(Input.GetKeyDown(KeyCode.Q))
if(collisionChecker = true)
if (grandPaChecker == true)
{
pickUp = 0;
activateItem(0);
(grandpa.GetComponent(text2) as MonoBehaviour).enabled = false;
Image progressImage = GameObject.Find("progress1").GetComponent<Image>();
Color newColor = progressImage.color;
newColor = Color.green;
progressImage.color = newColor;
score++;
}
}
void add(int No)
{
pickUp = pickUp + No;
}
void activateItem(int itemNo)
{
for (int i = 0; i < items.Length; i++)
{
items[i].SetActive(false);
}
items[itemNo].SetActive(true);
}
private void OnCollisionEnter(Collision collision)
{
collisionChecker = true;
if (collision.transform.tag == "man")
{
manChecker = true;
}
if (collision.transform.tag == "grandpa")
{
grandPaChecker = true;
}
}
private void OnCollisionExit(Collision collision)
{
collisionChecker = false;
manChecker = false;
grandPaChecker = false;
}
}
But with this it doesn´t do anything with any object also not with the object which is tagged man. Please help. Regards Crazyplapi.
Comment
Your answer
![](https://koobas.hobune.stream/wayback/20220612201233im_/https://answers.unity.com/themes/thub/images/avi.jpg)