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

Posted L建豪 忄YH

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity 知识点 - 2D游戏 - 透明屋顶相关的知识,希望对你有一定的参考价值。

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); // 修改透明度
}

以上是关于Unity 知识点 - 2D游戏 - 透明屋顶的主要内容,如果未能解决你的问题,请参考以下文章

2D游戏知识点四Unity 2D退出和多人联机

跟诸子学游戏 unity3d Rendering Mode和Render Mode

2D游戏知识点二Unity 2D游戏主角基本功能和动画

2D游戏知识点一Unity 2D Quad使用

Unity3D 灵巧小知识点 ☀️ | Unity退出游戏代码

2D游戏知识点三Unity生成Android手机apk程序