ओबज-सी/स्विफ्ट ब्रिज के साथ यहां एक बग है।
जबकि आप एक समाधान के लिए प्रतीक्षा, आप अपने आप के लिए एक अस्थायी पुल बनाने के द्वारा इस के आसपास काम कर सकते हैं:
PhysWorldBridge.h
#import <Foundation/Foundation.h>
#import <SceneKit/SceneKit.h>//
@interface PhysWorldBridge : NSObject
- (void) physicsWorldSpeed:(SCNScene *) scene withSpeed:(float) speed;
- (void) physicsGravity:(SCNScene *) scene withGravity:(SCNVector3) gravity;
@end
:
निम्नलिखित वर्ग जोड़ें PhysWorldBridge.m
#import "PhysWorldBridge.h"
@implementation PhysWorldBridge
- (id) init
{
if (self = [super init])
{
}
return self;
}
- (void) physicsWorldSpeed:(SCNScene *) scene withSpeed:(float) speed
{
scene.physicsWorld.speed = speed;
}
- (void) physicsGravity:(SCNScene *) scene withGravity:(SCNVector3) gravity
{
scene.physicsWorld.gravity = gravity;
}
@end
एक्सकोड आपको पहली उद्देश्य-सी फ़ाइल जोड़ने पर XXX-Bridging-Header.h
बनाने के लिए संकेत देना चाहिए। इसे इस फाइल को बनाने दें।
'XXX-ब्रिजिंग-header.h "करने के लिए वर्ग के लिए एक आयात जोड़ें:
//
// Use this file to import your target's public headers that you would like to expose to Swift.
//
#import "PhysWorldBridge.h"
अब आप स्विफ्ट से गुण सेट करने के लिए इस (hacky) पुल का उपयोग कर सकते हैं:
//scene.physicsWorld.speed = 2.0
// CAN'T USE ABOVE OR LINKER ERROR
let bridge = PhysWorldBridge();
bridge.physicsWorldSpeed(scene, withSpeed: 2.0);
//This call bridges properly
//So would the gravity one:
bridge.physicsGravity(scene, withGravity: SCNVector3Make(0, -90.81, 0));
क्या आप ओएस एक्स 10.9 पर एक्सकोड 6 बीटा चला रहे हैं? भौतिकी 10.10 के लिए दृश्य किट में एक नई सुविधा है। – rickster
आह ... हाँ। मैं ओएसएक्स 10.9 –
पर एक्सकोड बीटा 6 चला रहा हूं हालांकि मैं आईओएस 8 सिम्युलेटर चला रहा हूं। मुझे नहीं लगता था कि ओएस उस मुद्दे का कारण बन जाएगा क्योंकि सॉफ़्टवेयर आईओएस के लिए है। –