1、引力枪
玩家点击左键吸附箱子,点击右键推开箱子
方法
向角色朝向发射一条射线,当检测到tag为Box时,玩家按下鼠标时会则给Box的rigidbody施加速度,不按则速度为0
部分代码
void MouseFollow()//引力方法
{
RaycastHit2D raycastHit2D= Physics2D.Raycast(transform.position, face * Vector3.right,0.8f,layermask);//玩家朝向发射射线
Debug.DrawRay(transform.position, face * Vector3.right, Color.red);//绘制射线
if (raycastHit2D.collider == null)
{
//rb2d.velocity= Vector3.zero;
return;
}
else if(raycastHit2D.collider.tag == "Box")
{
rb2d = raycastHit2D.collider.gameObject.GetComponent<Rigidbody2D>();//获取击中目标的刚体
if (Input.GetMouseButton(0))
{
rb2d.velocity = new Vector2(0.5f, 0f); //吸附
}
else if (Input.GetMouseButton(1))
{
rb2d.velocity = new Vector2(-0.5f, 0f);//推开
}
else
{
rb2d.velocity = Vector2.zero;//不操作时速度为0
}
}
}
总结
射线的应用范围很广,但使用时要注意检测的图层