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

本文介绍如何使用Unity实现一个简单的鲜花撒屏效果。通过随机加载鲜花图片并将其放置于屏幕上随机位置,最终使鲜花充满整个屏幕。文章提供了完整的代码示例及步骤说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >




下面开始:

第一步,准备资源吧。
我下面提供我小项目里的小资源,其实你们也可以自己找,就是几张图片,不过需要用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上的,预制体放的位置清晰明了了,我也不多陈述了。
最后加个背景,搞定完工。测试一下试试呗。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值