028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

怎么在Unity3D中利用DoTween实现卡牌翻转效果-创新互联

这篇文章将为大家详细讲解有关怎么在Unity3D中利用DoTween实现卡牌翻转效果,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

创新互联建站是一家集网站建设,南宫企业网站建设,南宫品牌网站建设,网站定制,南宫网站建设报价,网络营销,网络优化,南宫网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

关于DoTween

DoTween是一款十分强大且好用的动画效果插件,有免费版和收费版,免费版就可以满足大部分需求了,在Unity Assets Store里就可以下载,在本效果里就用了DoTween的旋转功能。

设计思路

创建一个空物体,空物体下有两个image对象,一个是正面,一个是背面。假设我们从正面开始,则初始状态下正面的旋转角度为(0,0,0) (0,0,0)(0,0,0),让背面的旋转角度为(0,90,0) (0,90,0)(0,90,0),这样背面就看不见了。
触发旋转时,例如让正面在0.3秒内旋转到(0,90,0) (0,90,0)(0,90,0),这样正面就看不见了,等旋转完成后再让背面0.3秒旋转到(0,0,0) (0,0,0)(0,0,0),这样背面出现,整个翻转的过程就完成了,如果不明白,可以想象一下一张扑克牌从正面慢慢翻转到背面的情况,首先旋转到侧面对着你,然后再从侧面旋转到背面。

使用方法

脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;//别忘了引用

//卡牌状态,正面、背面
public enum CardState
{
 Front,
 Back
}
public class CardTurnOver : MonoBehaviour{
 public GameObject mFront;//卡牌正面
 public GameObject mBack;//卡牌背面
 public CardState mCardState = CardState.Front;//卡牌当前的状态,是正面还是背面?
 public float mTime = 0.3f;
 private bool isActive = false;//true代表正在执行翻转,不许被打断

 /// 
 /// 初始化卡牌角度,根据mCardState
 /// 
 public void Init()
 {
  if(mCardState==CardState.Front)
  {
   //如果是从正面开始,则将背面旋转90度,这样就看不见背面了
   mFront.transform.eulerAngles = Vector3.zero;
   mBack.transform.eulerAngles = new Vector3(0, 90, 0);
  }
  else
  {
   //从背面开始,同理
   mFront.transform.eulerAngles = new Vector3(0, 90, 0);
   mBack.transform.eulerAngles = Vector3.zero;
  }
 }
 private void Start()
 {
  Init();
 }

 /// 
 /// 留给外界调用的接口
 /// 
 public void StartBack()
 {
  if (isActive)
   return;
  StartCoroutine(ToBack());
 }
 /// 
 /// 留给外界调用的接口
 /// 
 public void StartFront()
 {
  if (isActive)
   return;
  StartCoroutine(ToFront());
 }
 /// 
 /// 翻转到背面
 /// 
 IEnumerator ToBack()
 {
  isActive = true;
  mFront.transform.DORotate(new Vector3(0, 90, 0), mTime);
  for (float i = mTime; i >= 0; i -= Time.deltaTime)
   yield return 0;
  mBack.transform.DORotate(new Vector3(0, 0, 0), mTime);
  isActive = false;

 }
 /// 
 /// 翻转到正面
 /// 
 IEnumerator ToFront()
 {
  isActive = true;
  mBack.transform.DORotate(new Vector3(0, 90, 0), mTime);
  for (float i = mTime; i >= 0; i -= Time.deltaTime)
   yield return 0;
  mFront.transform.DORotate(new Vector3(0, 0, 0), mTime);
  isActive = false;
 }
}

关于怎么在Unity3D中利用DoTween实现卡牌翻转效果就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


新闻名称:怎么在Unity3D中利用DoTween实现卡牌翻转效果-创新互联
路径分享:http://www.tsicrk.com/article/cepjed.html

其他资讯

让你的专属顾问为你服务

1.7686s