SceneKit_入門01_旋轉(zhuǎn)人物
SceneKit_入門02_如何創(chuàng)建工程
SceneKit_入門03_節(jié)點(diǎn)
SceneKit_入門04_燈光
SceneKit_入門05_照相機(jī)
SceneKit_入門06_行為動(dòng)畫
SceneKit_入門07_幾何體
SceneKit_入門08_材質(zhì)
SceneKit_入門09_物理身體
SceneKit_入門10_物理世界
SceneKit_入門11_粒子系統(tǒng)
SceneKit_入門12_物理行為
SceneKit_入門13_骨骼動(dòng)畫
SceneKit_中級(jí)01_模型之間的過渡動(dòng)畫
SceneKit_中級(jí)02_SCNView 詳細(xì)講解
SceneKit_中級(jí)03_切換照相機(jī)視角
SceneKit_中級(jí)04_約束的使用
SceneKit_中級(jí)05_力的使用
SceneKit_中級(jí)06_場(chǎng)景的切換
SceneKit_中級(jí)07_動(dòng)態(tài)修改屬性
SceneKit_中級(jí)08_陰影詳解
SceneKit_中級(jí)09_碰撞檢測(cè)
SceneKit_中級(jí)10_濾鏡效果制作
SceneKit_中級(jí)11_動(dòng)畫事件
SceneKit_高級(jí)01_GLSL
SceneKit_高級(jí)02_粒子系統(tǒng)深入研究
SceneKit_高級(jí)03_自定義力
SceneKit_高級(jí)04_自定義場(chǎng)景過渡效果
SceneKit_高級(jí)05 檢測(cè)手勢(shì)點(diǎn)擊到節(jié)點(diǎn)
SceneKit_高級(jí)06_加載頂點(diǎn)、紋理、法線坐標(biāo)
SceneKit_高級(jí)07_SCNProgram用法探究
SceneKit_高級(jí)08_天空盒子制作
SceneKit_高級(jí)09_霧效果
SceneKit_大神01_掉落的文字
SceneKit_大神02_彈幕來襲
SceneKit_大神03_navigationbar上的3D文字
學(xué)習(xí)目標(biāo)
1.學(xué)會(huì)使用SceneKit中一種原子修改機(jī)制(事務(wù))
2.熟練掌握使用SCNTransaction類中的方法動(dòng)態(tài)的修改屬性
認(rèn)識(shí)SCNTransaction
- 在當(dāng)前線程開始一個(gè)新的事務(wù)
+ (void)begin;
- 提交當(dāng)前事務(wù)中所做的所有更改
+ (void)commit;
- 提交所有隱式事務(wù),等當(dāng)前所有事物完成后提交
+ (void)flush;
- 解鎖和加鎖事務(wù)
+ (void)lock;
+ (void)unlock;
- 動(dòng)畫執(zhí)行時(shí)間,默認(rèn)為( 1/4s)
@property(class, nonatomic) CFTimeInterval animationDuration;
- 創(chuàng)建動(dòng)態(tài)事物組的時(shí)間函數(shù)
@property(class, nonatomic, copy, nullable) CAMediaTimingFunction *animationTimingFunction __WATCHOS_PROHIBITED;
- 是否啟用動(dòng)畫
@property(class, nonatomic) BOOL disableActions;
- 在事物動(dòng)畫完成或者取消后執(zhí)行
@property(class, nonatomic, copy, nullable) void (^completionBlock)(void);
- 設(shè)置或者獲取屬性值
+ (nullable id)valueForKey:(NSString *)key;
+ (void)setValue:(nullable id)value forKey:(NSString *)key;
如何使用
- 方式1
[SCNTransaction setAnimationDuration:3.0];
sunNode.position = SCNVector3Make(0, 0, 0);
- 方式2
下面演示的是事物嵌套
[SCNTransaction begin];
[SCNTransaction setAnimationDuration:0.5];
// 0.5 秒執(zhí)行完畢后 會(huì)執(zhí)行block塊
[SCNTransaction setCompletionBlock:^{
// 有事一個(gè)新的事務(wù)
[SCNTransaction begin];
[SCNTransaction setAnimationDuration:0.5];
material.emission.contents = [UIColor blackColor];
[SCNTransaction commit];
}];
material.emission.contents = [UIColor redColor];
[SCNTransaction commit];
總結(jié)
本節(jié)的內(nèi)容很簡(jiǎn)單,之前我們講過行為動(dòng)畫也可以實(shí)現(xiàn)動(dòng)畫效果,你覺得兩者的區(qū)別在哪里,自己思考。
代碼庫,聽說經(jīng)常給人點(diǎn)贊都當(dāng)老板了!