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