Unity 知识点 - 2D游戏 - 透明屋顶

本文介绍了如何在Unity 2D游戏中使用透明屋顶效果,通过碰撞器触发器让角色进入房间时改变屋顶透明度,便于观察内部。关键代码展示了OnTriggerEnter2D和OnTriggerExit2D的使用,以及如何在不同位置调用相应函数以控制屋顶透明度的显示和隐藏。
摘要由CSDN通过智能技术生成

Unity 知识点 - 2D游戏 - 透明屋顶

开发套件基于《创作者套件:RPG

1.需求背景

  • 在2D游戏场景中,角色走入房间后需要查看房间内的情况。有些大房间是直接加载另一个场景,而有些小房间直接改变房顶透明度,查看屋内情况。

2.具体方法

  • 为房屋添加碰撞体组件,修改为触发器使用。结合角色的碰撞器,每次触发和离开都会调用特定函数。
  • 代码放在屋顶对象或角色对象都可以,我倾向与放在屋顶对象中。

3.主要代码

  • 在API手册中搜索《OnTrigger》可查看相关函数信息。
  • 注意修改透明度的代码。
// 注意有个形参,每次角色产生碰撞都会调用这个函数
private void OnTriggerEnter2D(Collider2D collision) 
{
	if(collision.tag == "Player") 				// 判断碰撞的物品的标签是否符合
	{	
		// 这个修改透明度的函数,是乘于0.5,并不是直接赋值0~255
		transform.GetComponent<SpriteRenderer>().material.color = new Color(1, 1, 1, (float)0.5);
		Debug.Log("隐藏房顶");					// 打印,方便查看。
	}
}

// 每次角色离开碰撞都会调用这个函数
private void OnTriggerExit2D(Collider2D collision) 
{
	if(collision.tag == "Player") 				// 判断碰撞的物品的标签是否符合
	{
		transform.GetComponent<SpriteRenderer>().material.color = new Color(1, 1, 1, 1);
		Debug.Log("显示房顶");					// 打印,方便查看。
	}
}
  • 如果代码并非位于需要修改的对象上,则需要获取游戏对象,再获取组件,再修改透明度。参考API的使用,GameObject.GetComponent()
public GameObject GameObject_0; // 获取游戏对象

SpriteRenderer him = GameObject_0.GetComponent<SpriteRenderer>(); // 获取组件

if (him != null) // 判断是否获取成功
{
	him.material.color = new Color(1, 1, 1, (float)0.5); // 修改透明度
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值