自我介绍
广东双非一本的大三小白,计科专业,想在制作毕设前夯实基础,毕设做出一款属于自己的游戏!
2DImage制作仿3D轮转图
这一章其实不难,涉及的数学知识也非常简单,但是实现过程中有很多收获!
主要的还是两个脚本:
- RotationDiagram2D.cs 这是需要挂载到一个物体上的
- RotationDiagramItem.cs 并不需要挂载到任何物体上,由 RotationDiagram2D 组件自动生成gameobject对象并挂载
RotationDiagram2D.cs
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.UI;
public class RotationDiagram2D : MonoBehaviour
{
public Vector2 ItemSize;
public Sprite[] ItemSprites;
public float Offset;
public float ScaleTimeMin;
public float ScaleTimeMax;
List<RotationDiagramItem> _items = new List<RotationDiagramItem>();
List<ItemPosData> _posData = new List<ItemPosData>();
private void Start()
{
CreateItem();
CaculateData();
SetItemData();
}
private GameObject CreateTemplate()
{
GameObject item = new GameObject("Template");
item.AddComponent<RectTransform>().sizeDelta = ItemSize;
item.AddComponent<Image>();
item.AddComponent<RotationDiagramItem>();
return item;
}
private void CreateItem()
{
GameObject template = CreateTemplate();
RotationDiagramItem itemTemp = null;
foreach (Sprite sprite in ItemSprites)
{
itemTemp = Instantiate(template).GetComponent<RotationDiagramItem>();
itemTemp.SetParent(this.transform)