我创建了一个使用RayCasting来检测两个预制件的脚本 - 一个预制件有一个名为" target"第二个预制件有一个名为" unTarget"的标签。点击预制1与"目标"标记它应该增加计数和点击预制件2与" unTarget"标记它应该减少计数。当场景中只有一个Prefab时,这似乎有效。当只添加一个并单击时,它将递增/递减。当两个预制件都在场景中时,两个预制件都会增加。我不确定为什么会这样。任何帮助或想法?对不起,如果我的代码有点乱。
using UnityEngine;
using System.Collections;
public class clicks : MonoBehaviour
{
public int score;
void Start()
{
score = 0;
}
// Update is called once per frame
void Update()
{
if (Input.GetMouseButtonDown (0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit,200))
{
if (GameObject.FindGameObjectWithTag ("target"))
{
score++;
}
else
{
score--;
}
}
}
}
答案 0 :(得分:2)
GameObject.FindGameObjectWithTag
方法将查看整个场景中是否有target
作为标记的对象。因为你在场景中有一个总会返回true,如果你碰到了什么。
您需要查看RaycastHit上的属性并从那里拉出标记。
if (hit.collider.tag == "target")
{
score++;
}
else
{
score--;
}