前文:https://blog.csdn.net/Jaihk662/article/details/86763790(物体查找与控制)

前面已经实现了当小方块在Door里面时,可以用按键控制物体Door的旋转,触发器的代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LRtoDoor : MonoBehaviour
{
    private Door mydoor;
    private Transform myTransform;
    private Rigidbody myRigidbody;
    void Start()
    {
        mydoor = GameObject.Find("Door").GetComponent<Door>();
        myTransform = gameObject.GetComponent<Transform>();        //获取相应对象的引用
        myRigidbody = gameObject.GetComponent<Rigidbody>();
    }
    void Update()
    {
    }
    void OnTriggerStay(Collider coll)
    {
        if (coll.gameObject.name=="Cube (3)")      //如果方块进入了Door里面
        {
            Debug.Log("触发成功,可以用ZX键控制旋转");
            mydoor.Rotate();
        }
    }
}

那么问题又来了:想要设计100个可以触发效果的物体,该怎么办呢?总不可能写100个if语句吧

 

一、Tag标签

这个时候就需要标签了,也就是给物体分类,只要是这一类的物体都可以触发

Unity3D基础19:Tag标签

GameObject.FindGameObjectsWithTag(string):静态方法,返回一个数组,里面为所有标签为string的物体(GameObject)

触发器代码修改如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LRtoDoor : MonoBehaviour
{
    private Door mydoor;
    private GameObject[] p;
    private Transform myTransform;
    void Start()
    {
        p = GameObject.FindGameObjectsWithTag("Player");
        mydoor = GameObject.Find("Door").GetComponent<Door>();
        myTransform = gameObject.GetComponent<Transform>();

        Debug.Log("标签为Player的物体有:");
        for (int i = 0; i < p.Length; i++)
            Debug.Log(p[i].name);
    }
    void Update()
    {
    }
    void OnTriggerStay(Collider coll)
    {
        //暂时可以理解:coll.gameObject.tag和coll.tag一样,上面coll.name一样的道理
        if (coll.gameObject.tag=="Player")      //如果标签为"Player"的方块进入了Door里面
        {
            Debug.Log("触发成功,可以用ZX键控制旋转");
            mydoor.Rotate();
        }
    }
}

效果如下:

Unity3D基础19:Tag标签

 

 

相关文章:

  • 2021-07-28
  • 2021-06-13
  • 2021-08-30
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-07
相关资源
相似解决方案