前言
需求是点击圆盘UI转动。最开始的想法是用UI的EventSystem系统,但是发现UI的默认外框都是方形的,无法准确的点击。
思路既然用不了UI的事件系统,那就使用collider2D来实现多边形效果。首先给UI添加Collider2D组件,然后把collider编辑成UI的形状,最后是编辑代码部分。
代码我这里是实现的是鼠标按住后会一直执行方法,抬起后停止。
void Update()
{
if (!isGameOver && Input.GetMouseButtonDown(0))
{
//核心代码 接收鼠标点的2Dcollider,其余实现代码可以选择性忽略
RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero);
if (hit.collider != null)
{
//判断点击的物体名字
if(hit.collider.name == small.name|| hit.collider.name == middle.name|| hit.collider.name == big.name)
{
go = hit.collider.gameObject;
go.GetComponent().isDown = true;
}
}
}
if (Input.GetMouseButtonUp(0))
{
if(go != null)
go.GetComponent().isDown = false;
}
}
在这里备注一下layerMask参数的用法。它的作用是指定检测某个层的碰撞器。比如1
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?