목록swift (108)
HIT해

Toggle이란?Bool 변수를 간단하게 변경하는 함수 var isDarkMode : Bool = falseisDarkMode.toggle() // true
Singleton 패턴이란?스위프트에서 객체를 생성하는 대표적인 방법론애플리케이션이 시작될 때 객체의 인스턴스를 최초 1회만 생성하여 사용하는 디자인 패턴이다!메모리를 하나만 쓰는 것이 특징이다. 일반적인 객체 생성 사용 예시class Pet{ }let Pet1 = Pet()let Pet2 = Pet() 이렇게 생성했을때 Pet1과 Pet2는 다른 메모리 주소를 할당받는다.그럼 메모리를 두배로 차지하기에 비효율적이라고 말할 수 있다. Singleton 패턴 사용 예시final class Pet{ static let shared = Pet() private init(){}}let Pet1 = Pet.sharedlet Pet2 = Pet.shared 이때 Pet1과 Pet2는 같은 ..

지난 포스팅에서 블렌더 설정값을 가져오지 못하는 상황을 겪게 되고... fbx 뿐만 아니라 mtl , obj , usdz.... 3D 모델 파일의 대표주자 녀석들 모두 블렌더 설정값을 가져오지 못하는 사태가 발생했다. blender to Swift 로 dae 확장자를 자주 쓰는 것을 확인하고 적용해보니 다른 파일들과는 사뭇 다른 모습이 보였다. 바로 Physically Based 를 했을때 블렌더 설정값이 나온다는 것이었다. 그럼 dae 파일을 출력하는 방법에 대해 알아보자 1. dae 프로젝트 추가하기dae 파일을 가져올때 obj usdz 파일과 마찬가지로 SceneKit Tool 에 드래그 앤 드랍으로 가져와 scn 파일로 import 해준다. 2. Materials 추가하기 + 버튼을 눌러 등..

Open 이란?프로젝트 내 어디서든 사용가능하다다른 외부 모듈에서도 상속 및 오버라이드가 가능하게 한다예) 오픈소스 및 외부 라이브러리 구조, 애플 프레임워크uibiewcontroller 클래스명 Cmd + click 을 하면 open 키워드를 볼 수 있다. 상황예시1. 다른 폴더안의 Utilsclass Utils{ class func sayHello(){ print("하이") }} 2. import하여 사용하고자 함import Utils // 파일명class ViewContoller : UIViewController { override func viewDidLoad(){ super.viewDidLoad() Utils.sayHello() }} ..

Range란?범위를 나타내는 함수다! 사용예시let myRange = 0...2 // 0 , 1, 2let mySecondRange = 0.. 배열에 적용하는 방법이다let myFriends = ["짱구". "철수", "유리", "멩구"]let tempRange = 0.. 범위에 대한 기본적인 문법이기에 헷갈리지 않고 잘 익혀서 사용하자

이전 포스팅을 참고하면 도움이 될 것 같다!https://100percent-me.tistory.com/entry/Swift-%EA%B8%B0%EC%B4%88%EB%AC%B8%EB%B2%95-30-class-func-vs-static-func [Swift 기초문법 - 30] class func vs static func사용예시class Friend{ // 1. func sayHi(){ print("안녕!") } // 2. class func sayBye(){ print("바이바이") } // 3. static func sayHoho(){ print("호호") }}// 1.// 호출하려면 인스턴스를 만들어야한다// 클래스를 메모리에 올려100percent-me.tistory.com class MyClas..

디자인 툴에서 obj dae 로 내보냈을때 텍스쳐 하나하나 설정을 해주어야 하기에 fbx 파일로 SceneKit에 출력하기로 했다. 하지만 SceneKit 에서는 fbx 파일이 scn 으로 변환되지 않는다.( 왜...? 다 해준다며... ) 그래서 fbx > usdz > scn 으로 바꿔줘야한다. 1. fbx to usdzfbx 파일을 Reality Converter 로 열어준다. 우측 상단의 내보내기를 눌러서 저장하면 usdz 파일로 변환이 된다..! 2. usdz to scn아주 간단하다.Xcode > File > New > File > Scene Catalog 로 카탈로그를 만들어주면 SceneKit Scene Tool 이 나오는데여기에 드래그 앤 드랍을 해준다. 3. 파일 출력하기let scene..

사용자가 3D 모델의 색을 바꿀 수 있는 기능이 있으면 어떨까 생각이들어 색을 변경하는 기능을 만들어보았다. 모델에 접근하려면 NodeName을 알아야 접근할 수 있다. ModelNodeName 출력하기func printNodeDetails(node: SCNNode, depth: Int = 0) { // 현재 노드의 이름과 깊이를 출력합니다. let indentation = String(repeating: " ", count: depth) print("\(indentation)Node name: \(node.name ?? "Unnamed")") // 노드의 지오메트리가 있으면 지오메트리의 정보를 출력합니다. if let geometry = node.geometry { ..