diff --git a/SwiftARKit/SwiftARKit.xcodeproj/project.pbxproj b/SwiftARKit/SwiftARKit.xcodeproj/project.pbxproj index 5666be1..0223871 100644 --- a/SwiftARKit/SwiftARKit.xcodeproj/project.pbxproj +++ b/SwiftARKit/SwiftARKit.xcodeproj/project.pbxproj @@ -17,6 +17,7 @@ 7B6A02982C18930400877E3F /* SwiftARKitUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B6A02972C18930400877E3F /* SwiftARKitUITestsLaunchTests.swift */; }; 7B6A02A82C18966400877E3F /* MySwiftUIView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B6A02A72C18966400877E3F /* MySwiftUIView.swift */; }; 7B6A02AC2C18A1B000877E3F /* MyARViewRepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B6A02AB2C18A1B000877E3F /* MyARViewRepresentable.swift */; }; + 7BB48C802C256C370090AA60 /* objects in Resources */ = {isa = PBXBuildFile; fileRef = 7BB48C7F2C256C370090AA60 /* objects */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -51,6 +52,7 @@ 7B6A02A72C18966400877E3F /* MySwiftUIView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MySwiftUIView.swift; sourceTree = ""; }; 7B6A02A92C189ED700877E3F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; 7B6A02AB2C18A1B000877E3F /* MyARViewRepresentable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyARViewRepresentable.swift; sourceTree = ""; }; + 7BB48C7F2C256C370090AA60 /* objects */ = {isa = PBXFileReference; lastKnownFileType = folder; name = objects; path = ../../../SwiftUI_ARKit_2024/objects; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -101,6 +103,7 @@ 7B6A02772C18930200877E3F /* SwiftARKit */ = { isa = PBXGroup; children = ( + 7BB48C7F2C256C370090AA60 /* objects */, 7B6A02AA2C18A19C00877E3F /* Struct */, 7B6A02A92C189ED700877E3F /* Info.plist */, 7B6A02A62C18964F00877E3F /* View */, @@ -258,6 +261,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 7BB48C802C256C370090AA60 /* objects in Resources */, 7B6A02822C18930400877E3F /* Preview Assets.xcassets in Resources */, 7B6A027F2C18930400877E3F /* Assets.xcassets in Resources */, ); diff --git a/SwiftARKit/SwiftARKit/Assets.xcassets/Image.imageset/Contents.json b/SwiftARKit/SwiftARKit/Assets.xcassets/Image.imageset/Contents.json new file mode 100644 index 0000000..e5d476d --- /dev/null +++ b/SwiftARKit/SwiftARKit/Assets.xcassets/Image.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "board.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SwiftARKit/SwiftARKit/Assets.xcassets/Image.imageset/board.png b/SwiftARKit/SwiftARKit/Assets.xcassets/Image.imageset/board.png new file mode 100644 index 0000000..faea3d9 Binary files /dev/null and b/SwiftARKit/SwiftARKit/Assets.xcassets/Image.imageset/board.png differ diff --git a/SwiftARKit/SwiftARKit/ContentView.swift b/SwiftARKit/SwiftARKit/ContentView.swift index 7ceb19b..77328a2 100644 --- a/SwiftARKit/SwiftARKit/ContentView.swift +++ b/SwiftARKit/SwiftARKit/ContentView.swift @@ -11,8 +11,7 @@ import RealityKit struct ContentView : View { var body: some View { //ARViewContainer().edgesIgnoringSafeArea(.all) - MyARViewRepresentable() - .ignoresSafeArea() + MyARViewRepresentable().edgesIgnoringSafeArea(.all) } } diff --git a/SwiftARKit/SwiftARKit/Struct/MyARViewRepresentable.swift b/SwiftARKit/SwiftARKit/Struct/MyARViewRepresentable.swift index 090daf8..7e22042 100644 --- a/SwiftARKit/SwiftARKit/Struct/MyARViewRepresentable.swift +++ b/SwiftARKit/SwiftARKit/Struct/MyARViewRepresentable.swift @@ -12,8 +12,20 @@ import RealityKit struct MyARViewRepresentable : UIViewRepresentable{ public func makeUIView(context: Context) -> MyARView { - MyARView() + +// let arView = ARView(frame: .zero) +// let mesh = MeshResource.generateBox(width: 150, height: 500, depth: 50) +// let material = SimpleMaterial(color: .red, isMetallic: true) +// let model = ModelEntity(mesh: mesh, materials: [material]) //, materials: material +// model.transform.translation.y = 0.05 +// +// let anchor = AnchorEntity(.plane(.horizontal, classification: .table, minimumBounds: .zero)) +// +// arView.scene.anchors.append(anchor) +// return arView + + return MyARView() } - + public func updateUIView(_ uiView: UIViewType, context: Context) { } } diff --git a/SwiftARKit/SwiftARKit/View/MySwiftUIView.swift b/SwiftARKit/SwiftARKit/View/MySwiftUIView.swift index 5322942..2d24f8f 100644 --- a/SwiftARKit/SwiftARKit/View/MySwiftUIView.swift +++ b/SwiftARKit/SwiftARKit/View/MySwiftUIView.swift @@ -21,14 +21,55 @@ class MyARView : ARView{ convenience init() { self.init(frame: UIScreen.main.bounds) + addBoardToTheFloor() } + + ///Repère où attacher le plan func applyRunConfiguration(){ //ARWorldTrackingConfiguration.self + let conf = ARWorldTrackingConfiguration() + //conf.planeDetection = .horizontal + session.run(conf) + } + + func defineAnchors() { + let anchor = AnchorEntity(world: .zero) + scene.addAnchor(anchor) + } + + func addBoardToTheFloor() { + let configuration = ARWorldTrackingConfiguration() + session.run(configuration) + + let anchor = AnchorEntity(.plane(.horizontal, classification: .any, minimumBounds: SIMD2(0.2, 0.2))) + scene.addAnchor(anchor) + + let board = try? Entity.load(named: "board") + if let board { + anchor.addChild(board) + } } - func CreateAnchor(){ - //let anchor : AnchorEntity = AnchorEntity(world: ARWorldTrackingConfiguration()) + func addMeepleToBoard(){ + let configuration = ARWorldTrackingConfiguration() + session.run(configuration) } + +// func createAnchor(){ +// let anchor : AnchorEntity = AnchorEntity(world: .zero) +// self.scene.addAnchor(anchor) +// +// let mesh = MeshResource.generateBox(size: 10) +// let material = SimpleMaterial(color: .red, isMetallic: true) +// let model = ModelEntity(mesh: mesh, materials: [material]) +// model.transform.translation.y = 0.05 +// +// anchor.addChild(model) +// +//// let tv = try? Entity.load(named: "Data") +//// anchor.addChild(tv!) +// +// } }