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;
}
}
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;
}
}
本文介绍了一个使用Unity实现的CoverFlow效果示例代码,该脚本通过加载指定数量的图片并创建平面对象来展示CoverFlow效果。此外,还实现了鼠标拖动时图片的平滑移动与旋转功能。
4533

被折叠的 条评论
为什么被折叠?



