UGUI卡牌翻转效果

之前看到网上有个NGUI的卡牌翻转效果,试了一下还可以,但是没有UGUI的,所以就做了UGUI的。这是那个前辈的博客地址,想看的可以看一下:https://www.bobsong.net/486.html。UGUI界面设置:两个图片放在一起(重叠),一个正面一个反面。再创建一个按钮。下面只是基本功能,如果有特殊的要求,就自己融汇变通一下。

下面步入正题看代码:

    private Quaternion T;
    private Quaternion V;
    public GameObject A;//正面
    public GameObject B;//背面

    //public GameObject C;
    private bool bol = true;
    
    void Start() {
        B.transform.rotation = Quaternion.Euler(0, 90, 0);
       

    }
    public void Init(){
       
        A.transform.rotation = Quaternion.Euler(0, 0, 0);
        B.transform.rotation = Quaternion.Euler(0, 90, 0);

    }
   
    void Update() {
    

        //以下两行都是让他绕自身旋转
        //A.transform.Rotate(new Vector3(0, 90 * Time.deltaTime * 2.5f, 0));
        // A.transform.Rotate(Vector3.down,3);
    }
    public void BtnClick() {

        if (bol)
        {
           // Init();
            InvokeRepeating("BE", 0, 0.02f);
             CancelInvoke("BD");

        }
        else {
            //Init();
            InvokeRepeating("BD", 0.5f, 0.02f);
            CancelInvoke("BE");
          
        }
       
       
    }
   
    private void BE() {
       // C.transform.GetComponent<Button>().enabled = false;
        T = Quaternion.Euler(0, 90, 0);
        V = Quaternion.Euler(0, 0, 0);
        A.transform.rotation = Quaternion.RotateTowards(A.transform.rotation, T,4f);
        if (A.transform.eulerAngles.y > 89 && A.transform.eulerAngles.y < 91)
        {

            B.transform.rotation = Quaternion.RotateTowards(B.transform.rotation, V,4f);
           
            bol = false;
          //  C.transform.GetComponent<Button>().enabled = true;
        }

    
    }
    private void BD() {
     
        //返回动作
       // C.transform.GetComponent<Button>().enabled = false;
        T = Quaternion.Euler(0, 90, 0);
        V = Quaternion.Euler(0, 0, 0);
        B.transform.rotation = Quaternion.RotateTowards(B.transform.rotation, T, 4f);
        if (B.transform.eulerAngles.y > 89 && B.transform.eulerAngles.y < 91)
        {

            A.transform.rotation = Quaternion.RotateTowards(A.transform.rotation, V, 4f);

            bol = true;
            //C.transform.GetComponent<Button>().enabled = true;
        }
       
     
    }

 
 

猜你喜欢

转载自blog.csdn.net/Missand/article/details/80045903