在unity中如何实现物体来回摆动
时间: 2023-06-04 22:06:12 浏览: 853
unity骨骼摆动Swing+Bone+1.0 (1).zip
您好!关于您的问题,可以使用Unity中的Animation组件来实现物体来回摆动的效果。具体实现方法如下:
1.创建一个空物体,命名为“Swing”。
2.在“Swing”物体下创建一个子物体,命名为“Child”。
3.选择“Child”物体,添加一个Animator组件。
4.创建两个动画Clip(动画片段):一个名为“SwingRight”和一个名为“SwingLeft”。
5.进入Animation面板,在“SwingRight”和“SwingLeft”中分别绘制动画帧。
6.返回到“Swing”物体,选择“Child”子物体,并添加一个Animator控制器组件。
7.在该控制器组件中创建一个状态机(State Machine),并将它设置为默认状态机。
8.在默认状态机中添加两个状态,分别命名为“SwingRight”和“SwingLeft”。
9.将“SwingRight”状态与“SwingRight”动画Clip绑定,并设置转换条件为“SwingLeft”。
10.将“SwingLeft”状态与“SwingLeft”动画Clip绑定,并设置转换条件为“SwingRight”。
11.选择“Swing”物体并添加一个脚本组件。
12.在脚本中添加以下代码:
public class Swing : MonoBehaviour
{
Animator animator;
void Start()
{
animator = GetComponentInChildren<Animator>();
animator.Play("SwingRight");
}
void Update()
{
if (animator.GetCurrentAnimatorStateInfo(0).IsName("SwingRight") && animator.GetCurrentAnimatorStateInfo(0).normalizedTime > 1)
{
animator.Play("SwingLeft");
}
if (animator.GetCurrentAnimatorStateInfo(0).IsName("SwingLeft") && animator.GetCurrentAnimatorStateInfo(0).normalizedTime > 1)
{
animator.Play("SwingRight");
}
}
}
13.保存脚本,并运行程序,即可实现物体的来回摆动效果。
希望这个回答对您有帮助,谢谢!
阅读全文