void Start() { rb = GetComponent <Rigidbody> (); rotShip = 0.0f; // rotShipLast = 0.0f; beamCode = beam.GetComponent <PlayerBeam> (); }
private void OnPlayerBeamTriggered(PlayerBeam playerBeam, int layer) { Vector3 origin = playerBeam.transform.position; Vector3 direction = playerBeam.Aim; RaycastHit2D hitInfo = Physics2D.CircleCast(origin, 0.3f, direction, 1.5f, 1 << layer); IGrabbable grabbable = null; if (hitInfo.collider == null) { return; } string layerName = LayerMask.LayerToName(layer); switch (layerName) { case "Environment": grabbable = tileWorld.GetTileInDirection(hitInfo.point, direction); break; case "PhysicsTiles": PhysicsTile tile = hitInfo.rigidbody.GetComponent <PhysicsTile>(); if (tile.AllowPickUp) { grabbable = tile; } break; } if (grabbable != null) { playerBeam.PickUp(grabbable); } }