欢迎光临散文网 会员登陆 & 注册

Unity编码篇—获取组件,显示隐藏和销毁

2021-11-23 18:17 作者:unity小能手  | 我要投稿

我们想要访问游戏物体的组件 , 首先要找到这个游戏物体 , 然后才能找到这个物体身上的某个组件去改变它. 我们使用 GetComponent 方法获取组件 :

using UnityEngine;

public class Test : MonoBehaviour

{

// 定义一个cube对象

private Transform m_Cube;

private void Start()

{

// 获取这个cube身上的 Transform 组件

m_Cube = GameObject.Find("Cube").GetComponent<Transform>();

}

private void Update()

{

// cube 绕着y轴旋转

m_Cube.Rotate(Vector3.up * Time.deltaTime * 30f);

// 如果按下鼠标左键

if (Input.GetMouseButtonDown(0))

{

// cube 的颜色变蓝

m_Cube.GetComponent<MeshRenderer>().material.color = Color.cyan;

}

// 如果按下鼠标右键

if (Input.GetMouseButtonDown(1))

{

// cube变大一倍

m_Cube.localScale = Vector3.one * 2f;

}

// 如果按下鼠标中键

if (Input.GetMouseButtonDown(2))

{

// 将cube隐藏

m_Cube.gameObject.SetActive(false);

}

// 如果按下键盘 D 键

if (Input.GetKeyDown(KeyCode.D))

{

// 3s 后销毁这个 cube (这里的gameObject指的就是这个cube本身)

Destroy(gameObject, 3f);

}

}

}

代码已写好注释 , 可以对比注释看

我们在unity新建一个cube , 给这个cube挂上上面的脚本 , 然后运行 unity

运行效果 :

cube运行状态下一直在绕Y轴旋转 ;

按下鼠标左键 cube变蓝 ;

按下鼠标右键 cube变大1倍 ;

这里我们先在 Start 方法里获取了这个cube的 Transform 组件 , 而 Transform 组件是场景里每个游戏对象都有的组件 , 它控制物体的 位置 ,旋转,大小

我们获取到了cube身上的 Tranform 组件 , 我们就可以改变这个cube的位置,大小,旋转等属性 .

请输入图片描述

Transform组件

同理 ,我们也可以获取cube的 Box Collider 组件 , 将cube的 Is Trigger 勾选上 , 这个留给大家做练习 , 如果不会的可以留言 , 我在为大家写一下 .

现在为大家介绍设置游戏物体的显示和隐藏 SetActive() :

SetActive方法里面需要传一个 bool 值 :

true : 表示显示物体 ;

false : 表示隐藏物体 ;

运行效果 :

当我们按下鼠标中键的话 , cube会消失 ;

最后为大家介绍 Destroy 方法 :

销毁游戏对象及其组件 , 当我们不需要这个游戏物体了 , 我们就需要将这个物体销毁 .

格式 :

Destroy(GameObject) : 销毁某个物体(要销毁的游戏对象).

Destroy(GameObject , time) : 延迟一段时间后 , 销毁这个物体 (第一个参数是要销毁的游戏对象 , 第二个参数是延迟的时间).

运行效果 :

当按下键盘 D 键的时候 , 3s后 cube被销毁 。

更多资源请点击:https://bycwedu.vipwan.cn/promotion_channels/630597732

Unity编码篇—获取组件,显示隐藏和销毁的评论 (共 条)

分享到微博请遵守国家法律