要点:需要给门添加父物体(创建一个空物体),让父物体带着子物体一起移动。
父物体的中心需要转化为pivot(按Z键切换)
蓝色的Cube挂的脚本为
需要给门增加碰撞尺寸,扩大被碰撞的范围。
黄色的门所挂脚本为:
给教室内的所有座椅增加标签tag,标签为:Desks,获取对应的数组。
选中所有座椅,给他们增加一个碰撞区,调整碰撞区的大小。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DeskTrigger : MonoBehaviour {
private GameObject[] m_desk;
// Use this for initialization
void Start () {
m_desk = GameObject.FindGameObjectsWithTag("Desks");
foreach (var item in m_desk)
{
Debug.Log(item.name);
}
}
// Update is called once per frame
void Update () {
if (Input.GetKeyDown(KeyCode.Z))
{
//上升桌子
DeskUp();
}
if (Input.GetKeyUp(KeyCode.Z))
{
//下降桌子
DeskDown();
}
}
void DeskUp()
{
foreach (var item in m_desk)
{
item.GetComponent<Transform>().Translate(Vector3.up * 2, Space.Self);
}
}
void DeskDown()
{
foreach (var item in m_desk)
{
item.GetComponent<Transform>().Translate(Vector3.down * 2, Space.Self);
}
}
void OnTriggerEnter(Collider other)
{
if (other.name == "Student")
{
DeskUp();
}
}
void OnTriggerExit(Collider other)
{
if (other.name == "Student")
{
DeskDown();
}
}
}