Skip to content

maxxfrazer/FocusEntity

Folders and files

NameName
Last commit message
Last commit date

Latest commit

a8164f5 · Dec 18, 2019

History

22 Commits
Sep 29, 2019
Dec 17, 2019
Dec 17, 2019
Aug 29, 2019
Sep 29, 2019
Aug 29, 2019
Aug 29, 2019
Aug 29, 2019
Aug 27, 2019
Nov 23, 2019
Aug 29, 2019

Repository files navigation

FocusEntity

This package is based on the package ARKit-FocusNode, but adapted to work in Apple's Augmented Reality framework, RealityKit.

Lint Status Build Status Swift Package Manager Swift 5.0

FocusEntity Example 1

The Example looks identical to the above GIF, which uses the FESquare class (Focus Entity Square).

⚠️ iOS 13.2 bug ⚠️

There is a crashing bug when using this library with iOS 13.2 and importing via Swift Package Manager

The Swift bug has been reported here: https://bugs.swift.org/browse/SR-11564

And there is a temporary solution, which involves setting the "Dead Code Stripping" property in your build's target to "No"

Target > Build Settings > Linking > Dead Code Stripping

Minimum Requirements

  • Swift 5.0
  • iOS 13.0 (RealityKit)
  • Xcode 11

If you're unfamiliar with using RealityKit, I would also recommend reading my articles on Getting Started with RealityKit.

Installation

Swift Package Manager

Add the URL of this repository to your Xcode 11+ Project.

https://github.com/maxxfrazer/FocusEntity.git


Usage

See the Example for a full working example as can be seen in the GIF above

  • After installing, import FocusEntity to your .swift file
  • Create an instance of FESquare(), or another FocusEntity class.
  • Set the FocusEntity's viewDelegate to the ARView.
  • Using the ARSessionDelegate, define the session(_:didUpate:) function with a call to focusEntity.updateFocusNode()

If something's not making sense in the Example, send me a tweet or Fork & open a Pull Request on this repository to make something more clear.

I'm hoping to make the animations look a little smoother over time, but any and all contributions are welcome and encouraged.

Please follow the guide for creating GitHub Issues, otherwise I may simply close them.


The original code to create this repository has been adapted from one of Apple's examples from 2018, license also included. I have merely adapted the code to be used and distributed from within a Swift Package, and now further adapted to work with RealityKit.