第二回 人物脚本及动画学习 22/1/2018
根据1.1的教学,我跟着写了一堆character里面的代码,可是不知道有什么用。
我个人认为,character是将player中的移动方式提取,保留上下左右而去除按键控制,通过连接player达到按键控制的方式。而且character中不单只有移动,还有动画的脚本,人物的上下左右面都有显示。我认为这个character的方式可以被引用在之后的ai怪物中。是一个母项。
代码将会在下面放出。
重点:
1.将骨骼动画全选,并且拖到上边,储存后会得出动画和控制器
2.把上面的idledown删除,不需要。四个面的动作,四个都要储存,但取其中一个做控制器即可。
3.将控制器放到player-component-animator-controller中
4.接下来是controller的animator,parameters set x和Y轴
剔除两项:exit time&fixed duration
condition的调整:
down-right :
x G 0
Y G -0.1
right-down:
y less 0
x less 0.1
down-up:
y g 0
up-down:
y less 0
down-left:
Y G -0.1
X LESS 0
left-down:
X G -0.1
y less 0
left-up:
x g -0.1
y g 0
up-left:
x less 0
y less 0.1
up-right
x g 0
y less 0.1
right-up
x less 0.1
y g 0
代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public abstract class character : MonoBehaviour {
[SerializeField]
private float speed;
private Animator animator;
// Use this for initialization
protected Vector2 direction;
protected virtual void Start() {
animator = GetComponent<Animator>();
}
// Update is called once per frame
protected virtual void Update () {
Move();
}
public void Move()
{
transform.Translate(direction * speed * Time.deltaTime);
AnimateMovement(direction);
}
public void AnimateMovement(Vector2 direction)
{
animator.SetFloat("x", direction.x);
animator.SetFloat("y", direction.y);
}
}
走路的动画其实已经做出来了,但是还没能把四个面结合在一起,而且是昨天做的了,现在已忘了七七八八,大概要下一次再一起写出来。
ERROR:null乜乜character and player,反正就系红色三角形
character和player脚本中均有void start(),需要在player中写一个public overriding void start(){ base start() }
在character中写private virtual void start()
才能防止由于一个已经start左,另一个start唔到。
0:16 食条香蕉当宵夜T T,系时候训了