首页 > 代码库 > unity3d实现广告滑动效果
unity3d实现广告滑动效果
新建了一个带mask的prefab,加上代码只需要将图片prefab、按钮prefab和所想添加的图片
拖进去会自动生成按钮,滑动速度可以随意调time,滑动效果用itween实现的,所以需要加上itween插件
效果如下:(图片是我最爱的马路小天使(ˉ﹃ˉ))
附上代码
1 using UnityEngine; 2 using System.Collections.Generic; 3 using UnityEngine.UI; 4 5 public class Mask : MonoBehaviour { 6 7 public List<Sprite> sprite = new List<Sprite>(); 8 List<GameObject> image=new List<GameObject >(); 9 public GameObject pic; 10 public Button but; 11 public float time; 12 float width, height; 13 int num; 14 void Start () 15 { 16 num = sprite.Count; 17 width = this.gameObject.GetComponent<RectTransform>().rect.width; 18 height = this.gameObject.GetComponent<RectTransform>().rect.height; 19 pic.transform.GetComponent<RectTransform>().sizeDelta=new Vector2(width,height); 20 for (int i = 0; i < num; i++) 21 { 22 23 GameObject p = Instantiate(pic,new Vector3(transform.position.x+i*width,transform.position.y,0),transform.rotation)as GameObject; 24 p.transform.parent = this.gameObject.transform; 25 image.Add (p) ; 26 p.GetComponent<Image>().sprite = sprite[i]; 27 Button b = Instantiate(but, new Vector3(transform.position.x- ( 25 * num - 15) / 2+25*i, transform.position.y - height/2 + 15, 0), transform.rotation) as Button; 28 b.transform.parent = GameObject.FindWithTag("Button").transform; 29 System.Object obj = (System.Object)i; 30 b.onClick.AddListener(delegate(){this.MoveToPic((int)obj);}); 31 } 32 33 34 } 35 void OnGUI() 36 { 37 if (GUI.Button(new Rect(transform.position.x + 20 + width / 2, Screen.height - transform.position.y - 15, 30, 30), ">")) 38 { 39 if (image[0].transform.position.x < transform.position.x-3) 40 { 41 Move(1); 42 } 43 } 44 if (GUI.Button(new Rect(transform.position.x -width/2-50,Screen.height- transform.position.y-15 , 30, 30), "<")) 45 { 46 if (image[num - 1].transform.position.x > transform.position.x+3) 47 { 48 Move(-1); 49 } 50 } 51 } 52 public void Move(int dir) 53 { 54 for (int i = 0; i <num; i++) 55 { 56 iTween.MoveAdd(image[i], iTween.Hash("x", width * dir, "time", time)); 57 } 58 } 59 public void MoveToPic(int i) 60 { 61 62 float offset = transform.position.x - image[i].transform.position.x; 63 for (int j = 0; j < num; j++) 64 { 65 iTween.MoveAdd(image[j], iTween.Hash("x", offset, "time", time)); 66 } 67 } 68 69 70 }
unity3d实现广告滑动效果
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。