您的位置:首页 > 职场人生

15分钟用untiy做一个程序员的七夕礼物

2017-08-25 11:59 197 查看




下面开始:

第一步,准备资源吧。

我下面提供我小项目里的小资源,其实你们也可以自己找,就是几张图片,不过需要用PS 截成比较小的一般300*300像素,然后一张背景图,再用PS做一个字的图,如下:


 



不过注意一点,除了背景图,其他的都需要导出.png格式。

第二步,写代码。

代码很简单,就一个就够了。我们起名CreatFlower吧,说一下思路,然后贴出代码。

思路就是随机加载鲜花的图片,然后放到随机获取的屏幕的点上,然鲜花随机布满屏幕。时间间隔可以用Time.deltaTime来控制。

不过要注意的一点是,屏幕坐标转世界坐标的问题,因为这两个是不同的,具体写法看代码吧。

using UnityEngine;
using System.Collections;

public class CreatFlower : MonoBehaviour {

public GameObject instantiate;
public GameObject finallFlower;
GameObject Manage;
GameObject item;
SpriteRenderer spcon;
Texture2D tex2D;
Sprite sp;

int RandomM;
string Loading;
float i = 0;
int j = 0;

bool Go = false;

// Use this for initialization
void Start () {
Manage = GameObject.Find ("Manager").gameObject;
}

// Update is called once per frame
void Update () {

if (Input.GetMouseButtonDown(0)) {
Go = true;
}

if(i >= 0.1f && Go == true){
i = 0;

RandomM = Random.Range (1, 6);
Loading = "Pictures/" + RandomM.ToString();
item = Instantiate(instantiate, transform.position, transform.rotation) as GameObject;
item.transform.SetParent (Manage.transform);
spcon = item.GetComponent<SpriteRenderer>();
tex2D = (Texture2D)Resources.Load(Loading);
sp = Sprite.Create(tex2D, spcon.sprite.rect, new Vector2(0.5f, 0.5f));
spcon.sprite = sp;
Vector3 v3 = new Vector3(Random.Range(0, Screen.width), Random.Range(0, Screen.height), 0);
item.transform.position = new Vector3(Camera.main.ScreenToWorldPoint(v3).x, Camera.main.ScreenToWorldPoint(v3).y, 0);

j++;

if (j > 200) {
Go = false;
item = Instantiate(finallFlower, transform.position, transform.rotation) as GameObject;
item.transform.position = Vector3.zero;
}
}
i += Time.deltaTime;
}
}

第三步:在场景中创建一个空物体命名Manager,然后用图1和图love做两个预制体,如图:


 

脚本是挂在Manager上的,预制体放的位置清晰明了了,我也不多陈述了。

最后加个背景,搞定完工。测试一下试试呗。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  unity 游戏