Exemple #1
0
 void Start()
 {
     rb      = GetComponent <Rigidbody> ();
     rotShip = 0.0f;
     // rotShipLast = 0.0f;
     beamCode = beam.GetComponent <PlayerBeam> ();
 }
Exemple #2
0
        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);
            }
        }