最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Unity實(shí)現(xiàn)引導(dǎo)頁(yè)效果

 更新時(shí)間:2020年04月16日 10:22:14   作者:貪玩的孩紙時(shí)代  
這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)引導(dǎo)頁(yè)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了Unity實(shí)現(xiàn)引導(dǎo)頁(yè)效果的具體代碼,供大家參考,具體內(nèi)容如下

效果圖:

1、創(chuàng)建Canvas,設(shè)置RenderMode=ScreenSpace-Overlay,UIScaleMode = ScaleWithScreenSize,
ReferenceResolution(x=1080,y=1920)

2、創(chuàng)建一個(gè)RawImage,命名為(parentGoImg),并做如下設(shè)置

3、在parentGoImg下建幾個(gè)RawImage,賦予想展示的圖片,并做如下設(shè)置

4、添加如下腳本給parentGoImg

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using DG.Tweening;
using UnityEngine.UI;

public class Asd : MonoBehaviour,IBeginDragHandler, IDragHandler,IEndDragHandler
{
  /// <summary>
  /// 可移動(dòng)的最大最小X軸坐標(biāo)
  /// </summary>
  private float minX, maxX;
  /// <summary>
  /// 開始觸摸時(shí),算出偏移值,防止跳變
  /// </summary>
  private float offsetX;

  /// <summary>
  /// 靈敏度
  /// </summary>
  private float sensitivityX;
  /// <summary>
  /// 當(dāng)前顯示第幾頁(yè)
  /// </summary>
  private int currentShowIndex = 1;

  private void Start()
  {
    (transform as RectTransform).pivot = new Vector2(0, 0.5f);
    Debug.Log(Screen.width + "  " + Screen.height);
    for (int i = 0; i < transform.childCount; i++)
    {
      (transform.GetChild(i) as RectTransform).sizeDelta = new Vector2(0, 0);
      //canvas的RenderMode要設(shè)置成Overlay形式
      //這里i*1080是因?yàn)閏anvas的UIScaleMode設(shè)置成了ScaleWithScreenSize,Resolution為x=1080,y=1920
      //如果canvas的UIScaleMode設(shè)置成ConstantPixelSize則吧這里的i*1080改成i*Screen.width
      (transform.GetChild(i) as RectTransform).anchoredPosition = new Vector2(i * 1080.0f, 0);
    }

    minX = -((transform.childCount - 1) * Screen.width);
    maxX = 0.0f;
    //如果移動(dòng)超過(guò)頁(yè)面的五分之一,則切換頁(yè)面
    sensitivityX = Screen.width / 5;
  }

  public void OnBeginDrag(PointerEventData eventData)
  {
    offsetX = transform.position.x - Input.mousePosition.x;
  }

  public void OnDrag(PointerEventData eventData)
  {
    //將物體坐標(biāo)限制在最大最小X軸坐標(biāo)內(nèi)
    transform.position = new Vector2(Input.mousePosition.x + offsetX, transform.position.y);
    if (transform.position.x <= minX)
    {
      transform.position = new Vector2(minX, transform.position.y);
    }
    else if (transform.position.x >= maxX)
    {
      transform.position = new Vector2(maxX, transform.position.y);
    }
  }

  public void OnEndDrag(PointerEventData eventData)
  {
    //判斷坐標(biāo),是否需要切換頁(yè)面
    if (transform.position.x > GetLeftX())
    {
      currentShowIndex--;
    }
    else if (transform.position.x < GetRightX())
    {
      currentShowIndex++;
    }
    transform.DOMoveX(-(currentShowIndex - 1) * Screen.width, 0.2f);
  }

  float GetLeftX() {
    return -((currentShowIndex - 1) * Screen.width - sensitivityX);
  }

  float GetRightX() {
    return -((currentShowIndex - 1) * Screen.width + sensitivityX);
  }
}

運(yùn)行即可看到效果

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

昌宁县| 井研县| 铁力市| 青龙| 上饶市| 蓬溪县| 大渡口区| 竹山县| 宁阳县| 株洲县| 临海市| 葫芦岛市| 榆树市| 手游| 贺兰县| 水城县| 于都县| 长子县| 和硕县| 商水县| 浑源县| 肇庆市| 依兰县| 望谟县| 石楼县| 洪雅县| 克山县| 沅陵县| 台东市| 扬州市| 久治县| 溧水县| 邵阳市| 女性| 铜陵市| 海南省| 辽阳县| 英山县| 东丽区| 新昌县| 齐河县|