激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C# - Unity實現3D循環滾動效果

Unity實現3D循環滾動效果

2022-03-11 13:08海濤高軟 C#

這篇文章主要為大家詳細介紹了Unity實現3D循環滾動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了unity實現3d循環滾動效果展示的具體代碼,供大家參考,具體內容如下

Unity實現3D循環滾動效果

然后通過setdepthandposition這個方法,實現圖片的空間空間展開

Unity實現3D循環滾動效果

Unity實現3D循環滾動效果

z軸和y軸,系數是一樣的

經過上面設置,空間就擺開了

Unity實現3D循環滾動效果

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
using unityengine;
using system.collections;
using system.collections.generic;
 
public class selectrole : monobehaviour {
 public gameobject rolesobj;
 private int _half = 0;//一側的卡片數
 private int _movx = 150;//x軸移動距離
 private int _movy = 50;//y軸移動距離
 private int _movz = 60;//z軸移動距離
 private int count = 3;//組件數
 private list<roleitem> _rolelist = new list<roleitem>();
 
 // use this for initialization
 void start () {
  //加載圖片
  object[] texturelist = (object[])resources.loadall("pictures");
 
  int maxdepth = texturelist.length % 2 == 1 ? texturelist.length / 2 + 1 : texturelist.length / 2;//最大深度
  _half = maxdepth; 
 
  for (int i = 0; i < texturelist.length; i++)
  {  
   //加載角色圖片預設
   gameobject role = instantiate(resources.load("role", typeof(gameobject))) as gameobject;  
   role.transform.parent = rolesobj.transform;
   role.transform.localscale = vector3.one;
 
   eventdelegate.add(role.getcomponent<uitoggle>().onchange , roletogglechange);
 
   roleitem item = role.getcomponent<roleitem>();  
   item.texture.maintexture = texturelist[i] as texture;
 
   //設置角色卡片排序命名
   role.name = maxdepth.tostring();
   if (i > 0)
   {
    //奇數設置為右邊,下標為正數
    if (i % 2 == 1)
    {
     maxdepth--;
     role.name = maxdepth.tostring();
    }
    //偶數設置為左邊,下標為負數
    else
    {
     role.name = "-" + maxdepth.tostring();
    }
   }
 
   setdepthandposition(item,0,0);
   _rolelist.add(item);
  
 }
 
 
 private void setdepthandposition(roleitem role,int dir,int index)
 {
  int indexdepth = 0;
  //左右移動后,重新排序命名
  if (dir != 0)
  {
   if (index*dir > _half )
    indexdepth = -dir * (_half - 1);
   else
    indexdepth = index > -1 && index < 1 ? dir : index;
   role.name = indexdepth.tostring();
  
  else
  {
   indexdepth = int.parse(role.name);
  }
 
  tweenposition tp = role.getcomponent<tweenposition>();
  int x = indexdepth < 0 ? -(_half + indexdepth) * _movx : (_half - indexdepth) * _movx;
  indexdepth = system.math.abs(indexdepth);
  tp.to = new vector3(x, (_half - indexdepth) * _movy, (_half - indexdepth) * _movz);
 
 
  role.bg.depth = count * indexdepth;
  role.active.depth = 1 + count * indexdepth;
  role.texture.depth = 2 + count * indexdepth; 
 
  role.getcomponent<uitoggle>().value = indexdepth == _half ? true:false;
  tp.playforward();
 }
 
 /// <summary>
 /// 左邊
 /// </summary>
 public void leftclick()
 {
  //重新排列順序
  foreach (roleitem role in _rolelist)
  {
   int index = int.parse(role.name);
   print(index);
   setdepthandposition(role,1,++index);
  }
 }
 
 /// <summary>
 /// 右邊
 /// </summary>
 public void rightclick()
 {
  //重新排列順序
  foreach (roleitem role in _rolelist)
  {
   int index = int.parse(role.name);
   setdepthandposition(role,-1,--index);
  }
 }
 
 /// <summary>
 /// 鼠標選中某個角色
 /// </summary>
 public void roletogglechange()
 {
  if(uitoggle.current.value)
  {
   int index = int.parse(uitoggle.current.name);
   int movecount = _half - system.math.abs(index);//移動個數
   for (int i = 0; i < movecount;i++ )
   {
    if (index > 0)
     leftclick();
    else
     rightclick();
   }  
  }
 }
 
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/qq_15267341/article/details/76011321

延伸 · 閱讀

精彩推薦
  • C#Unity3D實現虛擬按鈕控制人物移動效果

    Unity3D實現虛擬按鈕控制人物移動效果

    這篇文章主要為大家詳細介紹了Unity3D實現虛擬按鈕控制人物移動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一...

    shenqingyu060520232410972022-03-11
  • C#深入解析C#中的交錯數組與隱式類型的數組

    深入解析C#中的交錯數組與隱式類型的數組

    這篇文章主要介紹了深入解析C#中的交錯數組與隱式類型的數組,隱式類型的數組通常與匿名類型以及對象初始值設定項和集合初始值設定項一起使用,需要的...

    C#教程網6172021-11-09
  • C#WPF 自定義雷達圖開發實例教程

    WPF 自定義雷達圖開發實例教程

    這篇文章主要介紹了WPF 自定義雷達圖開發實例教程,本文介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下...

    WinterFish13112021-12-06
  • C#C#實現XML文件讀取

    C#實現XML文件讀取

    這篇文章主要為大家詳細介紹了C#實現XML文件讀取的相關代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    Just_for_Myself6702022-02-22
  • C#C#通過KD樹進行距離最近點的查找

    C#通過KD樹進行距離最近點的查找

    這篇文章主要為大家詳細介紹了C#通過KD樹進行距離最近點的查找,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    帆帆帆6112022-01-22
  • C#C#裁剪,縮放,清晰度,水印處理操作示例

    C#裁剪,縮放,清晰度,水印處理操作示例

    這篇文章主要為大家詳細介紹了C#裁剪,縮放,清晰度,水印處理操作示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    吳 劍8332021-12-08
  • C#C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題實例

    C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題實例

    這篇文章主要介紹了C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題,簡單描述了訪問者模式的定義并結合具體實例形式分析了C#使用訪問者模式解決長...

    GhostRider9502022-01-21
  • C#C# 實現對PPT文檔加密、解密及重置密碼的操作方法

    C# 實現對PPT文檔加密、解密及重置密碼的操作方法

    這篇文章主要介紹了C# 實現對PPT文檔加密、解密及重置密碼的操作方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下...

    E-iceblue5012022-02-12
主站蜘蛛池模板: 4p嗯啊巨肉寝室调教男男视频 | www日韩大片 | 高清国产午夜精品久久久久久 | 97porn| 黄色视屏免费看 | 一级在线 | 欧美性受ⅹ╳╳╳黑人a性爽 | 欧美三级一级 | av在线免费播放网站 | 最近国产中文字幕 | 亚州精品国产 | 在线看国产视频 | 日本一级特级 | 亚洲一级片在线观看 | 在线看免费的a | 在线91视频| 亚洲小视频在线播放 | 日本在线观看一区二区 | av国产在线被下药迷网站 | 香蕉国产在线视频 | 姑娘第四集免费看视频 | 欧美伦交| 在线看免费观看日本 | 国产一区二区三区视频在线 | 国产无限资源在线观看 | 羞羞的视频在线 | 日韩黄站| 欧美成人区 | 成人爽a毛片免费啪啪红桃视频 | 毛片大全 | 国产无遮挡一区二区三区毛片日本 | 天天舔天天插 | 黄色网址免费在线 | 亚洲成人黄色片 | 九九热视频在线 | 亚洲综人网 | 亚洲成人国产综合 | 福利在线免费 | 欧美一级鲁丝片免费看 | 亚洲午夜一区二区三区 | 国产精品免费观在线 |