实现一个按钮的上下漂浮效果,我们通常会想到animation 和 itween来实现. 这次我们来使用三角函数实现
如图:
代码实现:
using UnityEngine; using System.Collections; public class Demo : MonoBehaviour { private float radian = 0; //弧度 public float perRadian = 0.02f; //增加的弧度,可以控制上下移动的速度 public float radius = 0.2f; //运动的范围,可以控制上下移动的距离 private Vector2 oldPos; private RectTransform rt; public void Start() { rt = transform.GetComponent<RectTransform>(); oldPos = rt.anchoredPosition; } public void Update() { radian += perRadian; //Matif.Cos传入弧度,返回是邻边:斜边的比, -1 到 1之间的值 乘以 运动范围 = 按钮上下移动的最大半径 float dy = Mathf.Cos(radian) * radius; rt.anchoredPosition = oldPos + new Vector2(0, dy); } }