Unity 指令碼實現CoverFlow效果

來源:互聯網
上載者:User

標籤:

    using UnityEngine; 

    using System.Collections; 

 

    public class   CoverFlow  : MonoBehaviour { 

 

        public int   numberOfPhotos = 4; 

        public ArrayList   PhotoObjects = new ArrayList(); 

        private Vector2   first = Vector2.zero; 

        private Vector2   second = Vector2.zero; 

 

        void Start(){ 

          LoadImages(); 

        } 

 

        void LoadImages() 

        { 

            for(int nLoop = 0; nLoop < numberOfPhotos; nLoop++) 

            { 

                  GameObject PhotoObject = GameObject.CreatePrimitive(PrimitiveType.Plane); 

 

                  PhotoObjects.Add(PhotoObject); 

 

                  PhotoObject.transform.position = new Vector3(8 + (nLoop - numberOfPhotos / 2) * 8.2f, 0.5f, 0); 

 

                  PhotoObject.transform.eulerAngles = new Vector3(-270, (nLoop - numberOfPhotos / 2) * -45, 0); 

 

                  PhotoObject.renderer.material.mainTexture = Resources.Load("photo" + nLoop) as Texture2D; 

            } 

        } 

 

        void MoveObject(int dir)  

        { 

            for(int nLoop = 0; nLoop < numberOfPhotos; nLoop++) 

            { 

                  GameObject PhotoObject = PhotoObjects[nLoop] as GameObject; 

                Vector3   movePoint = PhotoObject.transform.position; 

                Vector3   eulerPoint = PhotoObject.transform.eulerAngles; 

                  movePoint.x += dir * 0.2f; 

                  eulerPoint.y += dir * 2f; 

                  PhotoObject.transform.position = movePoint; 

                  PhotoObject.transform.eulerAngles = eulerPoint; 

            }  //Unity3D教程手冊:www.unitymanual.com

 

        } 

 

        void OnGUI() 

        { 

 

            if(Event.current.type == EventType.MouseDown) 

            { 

                first = Event.current.mousePosition; 

            } 

              //Unity3D教程手冊:www.unitymanual.com

            if(Event.current.type == EventType.MouseDrag) 

            { 

                second = Event.current.mousePosition; 

            } 

 

            if(second.x < first.x) 

            { 

                print ("Left"); 

                  MoveObject(-1); 

            } 

            else if(second.x > first.x) 

            { 

                print ("Right"); 

                  MoveObject(1); 

            } 

 

            first = second; 

        } 

    }

 

 

Unity 指令碼實現CoverFlow效果

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.