利用三角函数实现按钮上下漂浮

实现一个按钮的上下漂浮效果,我们通常会想到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);
    }

}
时间: 2024-08-01 08:39:55

利用三角函数实现按钮上下漂浮的相关文章

WPF利用Image实现图片按钮

之前有一篇文章也是采用了Image实现的图片按钮,不过时间太久远了,忘记了地址.好吧,这里我进行了进一步的改进,原来的文章中需要设置4张图片,分别为可用时,鼠标悬浮时,按钮按下时,按钮不可用时的图片,这里我只用了一张图片,利用C#的图片灰度处理自动获得不可用时的图片,利用图片的间距实现悬浮及按下效果.先上效果:(正常 悬浮 按下 不可用) 代码其实比较简单,唯一的难点就是把图片转换成ImageSource,在网上找了很久终于找到了一个,转换代码如下: 1 ///<summary> 2 ///设

利用javafx编写一个时钟制作程序

1.首先创建一个时钟类,用于编写时钟的各种特有属性 package javaclock; /** * * @author admin */import java.util.Calendar;import java.util.GregorianCalendar;import java.util.Scanner; import javafx.scene.layout.Pane;import javafx.scene.paint.Color;import javafx.scene.shape.Circ

超漂亮的CSS3按钮制作教程分享

要求 必备知识 基本了解CSS语法,初步了解CSS3语法知识. 开发环境 Adobe Dreamweaver CS6/Chrome浏览器 演示地址 演示地址 利用CSS3属性制作按钮,我们只需要用到Gradient属性,不用使用任何图片素材和JavaScript代码,仅仅通过CSS就能制作出好看的渐变按钮.按钮的大小可以通过CSS属性就能轻松的修改,而且它可以使用html的很多标签来制作,比如div,button,span,a,input[‘submit’]等等.下列案例就是通过CSS3制作的按

wpf,后台触发按钮点击以及拖动

触发按钮Click MouseButtonEventArgs args = new MouseButtonEventArgs(Mouse.PrimaryDevice, 0, MouseButton.Left); args.RoutedEvent = Button.ClickEvent; btnOkCommand.RaiseEvent(args); 触发按钮绑定的Command 需要添加UIAutomationProvider 引用 ButtonAutomationPeer bam = new B

根据个数创建按钮图标(上图下字)

/** * 创建方块view.m */ - (void)createSquares:(NSArray *)sqaures { // 一行最多4列 int maxCols = 4; // 宽度和高度 CGFloat buttonW = DQScreenW / maxCols; CGFloat buttonH = buttonW; for (int i = 0; i<sqaures.count; i++) { // 创建按钮 DQSqaureButton *button = [DQSqaureBut

如何利用CSS写一个六边形?

众所周知,一般情况下div所表现出来的形态是一个矩形,如果给它添加border-radius属性,可以让它成为一个圆角矩形或者是圆形,但是如果希望div表现出更多的形态来呢? 那么我们就来讲讲如何用CSS来写一个六边形. 大家首先来看一下,一个六边形,拆解开来的话,就是一个矩形加左右两个三角形. 三角形的话很好写,用边框border属性就可以实现. 当我们给一个div非常粗的边框,但是宽度和高度分别都设置为0的时候,我就会得到如下的图形. 那么我们只要把其中一条边框给删除,另外两条边框变成透明,

利用memcache实现,防止连续点击及每天点击次数

1.利用memcache实现一天能提现多少次,或多长时间点击多少次. 1 <?php 2 $memcache=memcache(); //调用memcache 3 $key=$hua.date('Ymd'); 4 if($memcache->get($key)){ 5 $hua=intval($memcache->get($key))+1; 6 $memcache->set($key,$hua,false,86400); 7 if(intval($memcache->get(

结合js利用画布制作一个时钟

首先 搭建canvas画布格式: 动态获取画布的宽和高方便变换,利用translate将圆中心坐标改为0 0: <canvas width="800px" height="800px"></canvas> <script> var canvas=document.querySelector("canvas"); var ctx=canvas.getContext("2d"); var wid

关于Javascript中的复制

在做项目时有一个需求,是需要复制内容到剪切板,因为有众多浏览器,所以要兼容性很重要 1.最简单的copy,只能在IE下使用 使用clipboardData方法 <script language="javascript"> function copy(){ window.clipboardData.setData("text",document.getElementById("name").value); alert("The