unity教室案例开发(小游戏)

本文介绍如何在Unity中实现教室场景的交互设计,包括给门添加父物体以便于整体移动,扩大门的碰撞体积,以及为所有座椅增加Desks标签并实现学生进出触发的升降桌椅功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
要点:需要给门添加父物体(创建一个空物体),让父物体带着子物体一起移动。
父物体的中心需要转化为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();
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值