首页 > 编程语言 > 详细

Unity 简单实现一个复制动作的分身

时间:2020-05-28 16:04:17      阅读:124      评论:0      收藏:0      [点我收藏+]

想要实现的效果

参考蔚蓝中的分身,分身会复制玩家的操作,延迟执行。

 

分析

操作可以分解成 命令输入 和 效果输出 两部分。

分身的操作,可以想象成延迟操作,玩家命令输入N秒后分身才执行效果输出。

所以利用协程简单实现输入输出的延迟效果,

Update中编写输入,获取输入后开启协程,协程开始延迟N秒,然后执行输出效果。

 

脚本(挂在分身上)

private void Update()
    {
     //获取输入
float horizontal = Input.GetAxisRaw("Horizontal"); float vertical = Input.GetAxisRaw("Vertical");
     
     //开启协程(将获取到的输入传给协程方法) StartCoroutine(Move(
20, new Vector2(horizontal, vertical))); } public IEnumerator Move(float moveSpeed, Vector2 vector2) { yield return new WaitForSeconds(1);  //延迟1秒

//根据输入进行输出效果 Vector2 moveDirection
= vector2.normalized; gameObject.GetComponent<Rigidbody2D>().velocity = moveDirection * moveSpeed; }

 

简单效果展示

技术分享图片

 

 扩展

输入操作不仅仅局限于移动指令,可扩展一些其他动作(开火等),只需要将输出延迟即可。

在执行分身的协程前进行判断,避免开启大量协程。

Unity 简单实现一个复制动作的分身

原文:https://www.cnblogs.com/KingR/p/12981218.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!