Unity | 动画那些事儿

对于Unity的动画系统,之前只限于运用在基于人物、骨骼等三维物体上,并没有在二维包括Button、Sprite等上多加运用及思考过。正好现在来补充一下自己的盲区。

  • 作用于Button按钮的动画(例如:自定义按钮的悬浮状态)

  1. 将Button组件的Transition设置为Animation,点击"Auto Generate Animation"按钮,将会创建属于Button的controller;
  2. 选中该Button,打开Animation窗口,可以添加不同Trigger的效果(直接在第一帧添加关键帧即可)

  

 

  • 作用于Sprite的逐帧动画

选中要加入动画的图片,拖入到Hierarchy面板,即可创建一个Animtion和AnimatorController。

  • StringToHash

    private Animator anim;

    private int SpeedID = Animator.StringToHash("Speed");

    void Update () {

    anim.SetFloat(SpeedID, Input.GetAxis("Vertical"));
	
    }
  • BlendTree的运用(控制角色左跑、右跑,摄像机跟随)

点击参考之前的博客

 

public class AnimController: MonoBehaviour {

    private Animator anim;

    private int vertical = Animator.StringToHash("Vertical");

    private int horizontal = Animator.StringToHash("Horizontal");

    private void Awake()
    {
        anim = this.GetComponent<Animator>();
    }

    void Update () {
        anim.SetFloat(vertical, Input.GetAxis("Vertical")*5.6f);

        anim.SetFloat(horizontal, Input.GetAxis("Horizontal")*1.68f);
    }
}
public class FollowPlayer : MonoBehaviour {
    public Transform Player;
    public Vector3 offset;
    private float smoothing = 3;
	// Use this for initialization
	void Start () {
        offset = transform.position- Player.position;
	}
	void LateUpdate () {
        Vector3 targetPos = Player.position + Player.TransformDirection(offset);
        transform.position = Vector3.Lerp(transform.position, targetPos, Time.deltaTime * smoothing);
        transform.LookAt(Player);
    }
}

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烫青菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值