做了很多阅读,我有点想法,但不能100%确定处理GameObject的动作及其动画的正确方法。在这种情况下,它是我的播放器移动脚本。
所以我想知道的是我应该放置我的"运动的逻辑"在我的Update或FixedUpdate中的变量,我是否也应该更改任何内容,我的动画放置位于更新或将其置于FixedUpdate中?我已经尝试了两种方法,但我看到了类似的结果,但我只想在更大的项目出现时做好准备。
refreshUI: function () {
var controlData = this._propertyEditor.get_control().Settings;
jQuery(this.get_panelStyle()).val(controlData.PanelStyle);
},
applyChanges: function () {
var controlData = this._propertyEditor.get_control().Settings;
controlData.PanelStyle = jQuery(this.get_panelStyle()).val();
}
答案 0 :(得分:1)
动画应与物理动作一起触发。我会将所有移动计算移动到FixedUpdate()并在Update()中获取输入。这样,所有动作和动画都会一起触发。
void Update() {
// IF we are allowed to move.
if(_PMS.canMove){
// Get a -1, 0 or 1.
moveHorizontal = Input.GetAxisRaw ("Horizontal");
moveVertical = Input.GetAxisRaw ("Vertical");
}
}
void FixedUpdate(){
// IF we are allowed to move.
if(_PMS.canMove){
// Get Vector2 direction.
movement = new Vector2(moveHorizontal * _PMS.invertXDirection, moveVertical * _PMS.invertYDirection);
// Apply direction with speed.
movement *= speed;
// IF the user has an animation set.
if(anim != null){
// Play animations.
Helper_Manager.PlayerAnimation(moveHorizontal, moveVertical, anim, _PMS); // always call this, assuming you play an idle animation if moveHorizontal and moveVertical are 0
}
// Apply the force for movement.
rb.AddForce(movement);
}
}