unity 射线检测真机失效,Unity-对孩子的射线广播不起作用

I want to enable some gameobjects with a raycast.

I have a principal object which cointains a Child with a collider. This Child contains a text which I want to enable when the Child's collider is hit by the raycast. I've tried with the code bellow but doesn't work. How can I access the child with the raycast?

public class SeleccionarTesoro_LIST : MonoBehaviour {

void Start()

{

GameObject[] hitObject = GameObject.FindGameObjectsWithTag("TESOROS");

}

public void SetHitObjectToActive(GameObject hitObject)

{

hitObject.transform.GetChild(0).GetChild(0).gameObject.SetActive (true);

hitObject.transform.GetChild(0).GetChild(2).gameObject.SetActive (true);

}

void Update() {

if (Input.GetMouseButtonDown (0))

{

RaycastHit hit;

Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);

if (Physics.Raycast (ray, out hit)) {

SetHitObjectToActive (hit.collider.gameObject);

}

}

}

}

解决方案

Based on your comments, I thing you are trying to reach the child in a wrong way.

Start by calling each gameObject with a name. For example:

MainGameObject

ChildCapsule

ChildText

Now, to access the child do like this:

public void SetHitObjectToActive(GameObject hitObject)

{

hitObject.transform.Find("ChildCapsule").gameObject.transform.Find("ChildText").gameObject.SetActive (true);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值