Unity3d 脚本实现CoverFlow 效果

 

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(){
  
  LoadImage();
 }
 
 void LoadImages()
 {
  for(int nLoop = 0; nLoop < numberOfPhotos; nLoop++)
  {
   GameObject PhotoObject = GameObject.CreatePrimitive(PrimitiveType.Plane);
   
   PhotoObjects.Add(PhotoObject);
   
   PhotoObject.transform.position = Vector3(8 + (nLoop - numberOfPhotos / 2) * 8.2, 0.5, 0);
   
   PhotoObject.transform.eulerAngles = Vector3(-270, (nLoop - numberOfPhotos / 2) * -45, 0);
   
   PhotoObject.renderer.material.mainTexture = Resources.Load("photo" + nLoop);
  }
 }
 
 void MoveObject(int dir)
 {
  for(int nLoop = 0; nLoop < numberOfPhotos; nLoop++)
  {
   GameObject PhotoObject = PhotoObjects[nLoop];
   
   PhotoObject.transform.position.x += dir * 0.2;
   
   PhotoObject.transform.eulerAngles.y += dir * 2;
  }
  
 }
 
 void OnGUI()
 {
  
  if(Event.current.type = EventType.MouseDown)
  {
   first = Event.current.mousePosition;
  }
  
  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;
 }
}

 

随便弄几张图放到Assets/Resources目录下,取名叫photo0, photo1.........

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值