Translate

if(animator.GetCurrentAnimatorStateInfo(0).isName("Idle") )
    DoStuff();

Thay vào đó bạn chỉ cần sử dụng StateMachineBehaviours.
State Machine Transitions
State Machines được phát triển nhiều hơn và phức tạp hơn vì vậy Unity giới thiệu các khái niệm về State Machine Transitions để cung cấp một mức độ trừu tượng cao hơn của StateMachine logic .
Trong unity 5 có thêm vào hai node Entry và Exit vào StateMachines .
Entry : khi bạn chuyển đổi sang một StateMachine , hệ thống animation sẽ đánh giá Entry node và các nhánh để chuyển đến điểm đến mà điều kiện của nó đáp ứng .
Exit : khi đi đến node Exit , hệ thống animation sẽ nhìn vào quá trình chuyển đổi StateMachine và nhánh để đi tới điểm đích một cách đúng đắn.
Chú ý là bạn có thể trộn các quá trình chuyển đổi : State->State, State->StateMachine, StateMachine->StateMachine…
Asset Creation API
Trong unity 5 bạn có thể tạo ra các animation assets như : StateMachines, States, Controllers, Layers, Blentrees, ... bằng cách sử dụng các script trong Editor .
Có hai API , một loại cao cấp được quản lý bởi Unity và một loại cấp thấp hơn bạn phải quản lý bằng tay , và có thể thực hiện tham chiếu bên ngoài .
Cả hai API này đều có document . Dưới đây là một ví dụ về cách sử dụng API
Csharp
// Creates the controller
var controller = UnityEditor.Animations.AnimatorController.CreateAnimatorControllerAtPath ("Assets/Mecanim/StateMachineTransitions.controller");
// Add parameters
controller.AddParameter(“TransitionNow”, UnityEditor.Animations.AnimatorControllerParameterType.Trigger);
controller.AddParameter(“Reset”, UnityEditor.Animations.AnimatorControllerParameterType.Trigger);
controller.AddParameter(“GotoB1″, UnityEditor.Animations.AnimatorControllerParameterType.Trigger);
controller.AddParameter(“GotoC”, UnityEditor.Animations.AnimatorControllerParameterType.Trigger);
// Add StateMachines
var rootStateMachine = controller.layers[0].stateMachine;
var stateMachineA = rootStateMachine.AddStateMachine(“smA”);
var stateMachineB = rootStateMachine.AddStateMachine(“smB”);
var stateMachineC = stateMachineB.AddStateMachine(“smC”);
// Add States
var stateA1 = stateMachineA.AddState(“stateA1″);
var stateB1 = stateMachineB.AddState(“stateB1″);
var stateB2 = stateMachineB.AddState(“stateB2″);
stateMachineC.AddState(“stateC1″);
var stateC2 = stateMachineC.AddState(“stateC2″); // don’t add an entry transition, should entry to state by default
// Add Transitions
var exitTransition = stateA1.AddExitTransition();
exitTransition.AddCondition(UnityEditor.Animations.AnimatorConditionMode.If, 0, “TransitionNow”);
exitTransition.duration = 0;
var resetTransition = stateMachineA.AddAnyStateTransition(stateA1);
resetTransition.AddCondition(UnityEditor.Animations.AnimatorConditionMode.If, 0, “Reset”);
resetTransition.duration = 0;
var transitionB1 = stateMachineB.AddEntryTransition(stateB1);
transitionB1.AddCondition(UnityEditor.Animations.AnimatorConditionMode.If, 0, “GotoB1″);
stateMachineB.AddEntryTransition(stateB2);
stateMachineC.defaultState = stateC2;
var exitTransitionC2 = stateC2.AddExitTransition();
exitTransitionC2.AddCondition(UnityEditor.Animations.AnimatorConditionMode.If, 0, “TransitionNow”);
exitTransitionC2.duration = 0;
var stateMachineTransition = rootStateMachine.AddStateMachineTransition(stateMachineA, stateMachineC);
stateMachineTransition.AddCondition(UnityEditor.Animations.AnimatorConditionMode.If, 0, “GotoC”);
rootStateMachine.AddStateMachineTransition(stateMachineA, stateMachineB);

Direct Blend Trees
Trong unity 5 có một loại BlendTree mới cho phép bạn ánh xạ một tham số animator tới trọng số của BlendTree con trực tiếp .
Điều này thật sự hữu dụng khi bạn làm việc với BlendShape animation hoặc additive animations.
Root Motion Authoring
Unity 5 cho phép bạn tạo ra các đối tượng animate và chuyển đổi animator của chúng thành root motion . Đơn giản bạn chỉ cần tạo ra một animation (dịch chuyển hoặc xoay) trên một đối tượng sau đó click vào Generate Root Motion Curve trong AnimationClip inspector!
Ngoài ra còn những thay đổi tiện ích khác giúp việc dùng animation trong unity tiện lợi hơn rất nhiều :
  • Cải thiện animation previewer của camera , bây giờ camera có thể Plan, Orbit, Scale giống như trong scene viewer .
  • Truy cập các thông số trong quá trình chạy (tên, giá trị mặc định , ...)
  • Gizmo trong scene view cho vị trí root , vị trí IK 
  • Cải thiện công cụ ngắm mục tiêu.
  • Tối ưu hoá thời gian chạy
Trong phiên bản này có rất nhiều bug được sửa 

Nhận xét
Theo tôi điểm lớn nhất của lần sửa đổi này là chúng ta có thể sử dụng các script trong chính animation tức là chúng ta có thể viết code xử lý trong quá trình animation thực hiện . Điều này là rất khó thực hiện trong các phiên bản unity cũ .
Những điểm mới về Animation trong Unity5 cho người làm game Những điểm mới về Animation trong Unity5 cho người làm game

Trong phiên bản Unity 5 có rất nhiều sửa đổi lớn và các tính năng mới giúp cải thiện chất lượng của engine .Dưới đây tôi sẽ giới thiệu những...

Đọc thêm »
06:04

Kinh nghiệm làm game Unity cho người mới học Kinh nghiệm làm game Unity cho người mới học

tài liệu  học unity học unity  online hoc unity tieng viet học unity Chào các bạn hôm nay mình sẽ chia ...

Đọc thêm »
07:07

tạo hiệu ứng trong game tạo hiệu ứng trong game

adfafafa adf a fa f a f dâfadgdgkanlkna;k alknlakvlkav;,

Đọc thêm »
01:29

tạo animation strong game 2D tạo animation strong game 2D

đlknlakkfadkf dạnladkflakdfl ànlakdfl dalnflakndlak dànlakdfnlak alknflak

Đọc thêm »
01:28

Bài số hai Bài số hai

jnadjlakvlakvlklnv dalnflakdflkad dalknfladkfl dànlakfnlakf dlanflkadnflnkdalf ànlaknflaknflaknfl ànljasnlfkdlafklakf a faldfnlakn...

Đọc thêm »
01:31

hương dẫn sử dụng GUI unity 4.6 hương dẫn sử dụng GUI unity 4.6

Giới thiệu Nhận xét đầu tiên của tôi khi dùng Unity là một Engine tuyệt vời để phát triển game bởi vì nó rất dễ dàng ,nhanh và còn rất...

Đọc thêm »
03:21
 
Học Unity2D © 2013. All Rights Reserved. Powered by Blogger
Top