所有:
在向Web服务发送请求之前,我需要将http标头添加到HttpClient.我如何为单个请求执行此操作(而不是将HttpClient应用于所有将来的请求)?我不确定这是否可行.
var client = new HttpClient();
var task =
client.GetAsync("http://www.someURI.com")
.ContinueWith((taskwithmsg) =>
{
var response = taskwithmsg.Result;
var jsonTask = response.Content.ReadAsAsync<JsonObject>();
jsonTask.Wait();
var jsonObject = jsonTask.Result;
});
task.Wait();
Run Code Online (Sandbox Code Playgroud) 我正在同时学习ARKit和Scenekit,这是一个挑战.
创建了ARWorldTrackingSessionConfiguration会话后,我想知道是否有人知道在场景会话中获取用户"相机"位置的方法.我的想法是想要将对象设置为用户当前位置的动画.
let reaperScene = SCNScene(named: "reaper.dae")!
let reaperNode = reaperScene.rootNode.childNode(withName: "reaper", recursively: true)!
reaperNode.position = SCNVector3Make(0, 0, -1)
let scene = SCNScene()
scene.rootNode.addChildNode(reaperNode)
// some unknown amount of time later
let currentCameraPosition = sceneView.pointOfView?.position
let moveAction = SCNAction.move(to: currentCameraPosition!, duration: 1.0)
reaperNode.runAction(moveAction)
Run Code Online (Sandbox Code Playgroud)
但是,即使我正在移动相机,似乎currentCameraPosition总是[0,0,0].知道我做错了什么吗?最终的想法是我会旋转对象围绕一个看不见的球体,直到它在镜头前,然后动画它,做一些与此类似:旋转SCNCamera节点看着周围的假想球体的对象(这种方式,用户看到对象动画的对象)
谢谢你的帮助.
我正在尝试新的ARKit来取代我的另一个类似的解决方案.真是太棒了!但我似乎无法弄清楚如何以编程方式移动ARAnchor.我想慢慢将锚点移动到用户的左侧.
将锚点创建在用户面前2米处:
var translation = matrix_identity_float4x4
translation.columns.3.z = -2.0
let transform = simd_mul(currentFrame.camera.transform, translation)
let anchor = ARAnchor(transform: transform)
sceneView.session.add(anchor: anchor)
Run Code Online (Sandbox Code Playgroud)
之后,将对象移动到用户的左/右(x轴)...
anchor.transform.columns.3.x = anchor.transform.columns.3.x + 0.1
Run Code Online (Sandbox Code Playgroud)
每50毫秒(或其他)重复一次.
上述方法不起作用,因为transform是一个get-only属性.
我需要一种方法来改变空间中AR对象相对于用户的位置,以保持AR体验不变 - 这意味着,如果移动设备,AR对象将会移动但也不会被卡住"就像它只是画上相机一样,但移动就像你在走路时会看到一个人移动 - 它们正在移动,你正在移动它看起来很自然.
请注意,此问题的范围仅涉及如何在空间中移动与用户相关的对象(ARAnchor),而不是与平面(ARPlaneAnchor)或另一个检测到的表面(ARHitTestResult)相关.
谢谢!