For direction and distance, it needs GPS data in this case. And that accuracy is largely outside of Apple's control. It's looking for two points for a direction vector and if the second is within three meters of the first, it's only seeing the one point. Yes, while it might not work for one flight, as long as you get data to establish the user is climbing or descending, you could extrapolate what the step data means. The API uses this to determine if the user is taking the steps or using an elevator. You could also take the start and end GPS data directly and apply your own analysis of what is occurring between these points. But this 3 meter accuracy will still be an issue. The device is capable of obtaining a more accurate picture of its surroundings but then that's not really practical for your case. You probably don't want the user to start their exercise by doing a room scan. It's the old trade off of speed/accuracy/convenience. I'd try to determine how sensitive it really is by looking at the raw GPS data. You might get by with some trick like having the user press start with the device on the floor. Or just explaining to the user the need to move further or otherwise show them when they hit a new GPS point to qualify them.
Post
Replies
Boosts
Views
Activity
According to this, "A single floor has a height of approximately three meters". So that would make me think that anything falling under that tolerance is ignored. This is also approximatley the limitation of the GPS data itself and I think it is less accurate vertically. My brother and I walk about 10-12 miles a day on vacation and my phone always gives me more credit than his despite no real difference in where we go. I'm not exactly sure why. I do tend to do the navigating and he mostly keeps his in his pocket. I think the data can only be used to track your own relative performance than be accurate enough to compare to others. If Apple's Fitness app isn't picking up the difference either, I'd say it's just a limitation. It wouldn't surprise me if you went one floor and didn't get credit for it but two floor and got credit for both as that would form a trend over two points.
I’ve not used this API but it appears to keep track of historical data and doesn’t require active monitoring from the app? Unless I’m reading this wrong. It looks like you just need a timer and then if the app is shut down, pass the remaining time to a push notification to alert the user. Even if it could be done as a background process, the user has the option to turn that off. If they don’t understand why or forget, they may do that.
I‘m currently working on polishing my SceneKit game. I mainly stuck with SceneKit because I have years of experience working with it and thought I could compensate for any issues faster than learning something new. I even felt like it was a smart idea after Unity’s recent controversy. You can feel somewhat alone in figuring things out. If you want to cross platform, that’s a solid point for Unity. Mine is made for the iOS mobile platform in mind. So I didn’t care about that. That said, and especially if this flops hard, I might try a Unity or Unreal PC game next.
You can get it to work in SceneKit but not RealityKit? I misread the question and thought it was Scenekit related where I do have it working. The doors are animated although the orientation is wrong. Y-axis is up yet this is on Z. I haven't used realitykit enough. The error may be related to RealityKit catching this difference in orientation? Not sure why it would care though.
You need a texture source as well. Mapping the UV to this custom mesh. SCNGeometry(sources: [vertexSource, normalSource, textureSource], elements: elementArray). Makes one appreciate Blender.
There is an option to submit a video for the review. I got rejected once because they thought my app was only running an animation and also because it didn’t use ARKit enough. So I made a video showing how the user is creating the animation and that ARKit is an option to help the user visualize solutions. I think they were more accustomed to AR apps being all AR environment. Regardless, the video seemed to clear up any confusion. They deal with a flood of apps and can’t spend all day figuring out one and it may be a topic outside their interest, so its good to make things fast and simple to understand.
There is an isSceneCaptured property you can monitor.
I add a “Request Refund“ option through StoreKit. Accessible from a help menu. I’ve only noticed it used once and it didn’t require input from me.
I would just save the value and update the achievement. When the new value is added update with Int(savedUnits/total * 100.0).
savedUnit += 1
let valtest = ( saveUnit / 1000 * 100.0)
GKAchievement(identifier: achievementID).percentComplete = Int(valtest)
Given that 'Int' truncates the remainder, it won't prematurely award it.
It's now mostly working. Still a few 500s. So either the issue wasn't me and resolved itself or the right person read the post a flipped a switch. I did make a change in getting the file size but I don't think that's it.
Thank you for the reply. I'm not too familiar with how this forum works despite how long I've been a member. I had tried to add a comment yesterday to explain what I found but I don't see it anywhere. So that doesn't work how I thought it did. But my problem was due to a simple misspelling when setting the metallic contents. I just had it in my brain as being similar to another issue related to trying to match colors and so I didn't see the simple answer first. The viewer was using the file being dropped directly into the spot. So no spelling issues there. And yet the programmatic equivalent was effectively being set to nil. It is all working now. Thanks.
Oof. All that debugging and it was a misspelling of "metallic" on the metalness contents file. Well, I got some refactoring out of it.
You could just use GameCenter to manage this. User defaults is a convenient way of saving app settings in the app's sandbox. They don't remain if the user deletes the app. But if you save scores, progress, and achievements to their GameCenter account, those things stay with the account. I think there is no reason to roll your own system for this.
Are you monitoring the cameraDidChangeTrackingState? This is needed to deal with interruptions to the session and decide how to handle them.