初学Unity!

最近看别人的视频,搞了一个捕鱼达人小游戏。感觉会作图挺重要的。

unity适配手机屏幕感觉很好,一行代码就行了

Camera.main.aspect = 1.67f;

这是生成鱼的代码,感觉这种小游戏,代码简单,就是切图做重复的事情有点难受

​
using System.Collections;
using System.Collections.Generic;
using System.Threading;
using UnityEngine;
using UnityEngine.SceneManagement;

public class CreatFish : MonoBehaviour
{
    public GameObject[] Fishes;
    public GameObject BigFish;

    public GameObject BigGoldFish;
    public GameObject SmallGoldFish;

    //-----------------------------
    private float BigGoldFishTime;
    private float SmallGoldFishTime;
    private float BigFishTime;

    private enum FishInfo
    {

     Big,
     Small
    }


    // Start is called before the first frame update
    void Start()
    {
        //适配屏幕
        Camera.main.aspect = 1.67f;
        //每隔三秒创建一次普通鱼
        InvokeRepeating("CreatFishes",1f,3f);
        SmallGoldFishTime = Random.Range(30, 120);//30s-2分钟出现一次小金鱼
        BigGoldFishTime = Random.Range(240, 480);//4-8分钟出现一次大金鱼
        BigFishTime = Random.Range(180, 300);//3-5分钟出一次蓝色鲸鱼
    }

   
    /// <summary>
    /// 创建普通鱼
    /// </summary>
    private void CreatFishes()
    {
        if (Fishes.Length > 0)
        {
            for (int i = 0; i < Fishes.Length; i++)
            {
                Vector3 vector3 = getRandomVector3();
                GameObject fish = Instantiate(Fishes[i],vector3,Quaternion.AngleAxis(Random.Range(-30f,30f),Vector3.back));
                
            }
        }

    }
    /// <summary>
    /// 创建金鱼
    /// </summary>
    /// <param name="fishInfo">创建大金鱼还是小金鱼</param>
    private void CreatGoldFish(FishInfo fishInfo)
    {

        if (BigGoldFish != null && SmallGoldFish != null) 
        {
            Vector3 vector3 = getRandomVector3();
            switch (fishInfo)
            {
                case FishInfo.Big:
                    Instantiate(BigGoldFish, vector3, Quaternion.AngleAxis(Random.Range(-30f,30f), Vector3.back));
                    break;
                case FishInfo.Small:
                    Instantiate(SmallGoldFish, vector3, Quaternion.AngleAxis(Random.Range(-30f, 30f), Vector3.back));
                    break;
            }
        }
        

    }
    /// <summary>
    /// 创建蓝色鲸鱼
    /// </summary>
    private void CreatBigFish()
    {
        if (BigFish != null)
        {
            Vector3 vector3 = getRandomVector3();
            Instantiate(BigFish, vector3, Quaternion.AngleAxis(Random.Range(-30f, 30f),Vector3.back));
        }
    }
    /// <summary>
    /// 获取随机坐标
    /// </summary>
    /// <returns></returns>
    private Vector3 getRandomVector3()
    {
        //边界值 左-8.7 右8.7 上下+-5
        float y = Random.Range(-4.9f, 5);
        return new Vector3(-8.6f,y,0);
    }

    // Update is called once per frame
    void Update()
    {
        //如果按下了返回键
        if (Input.GetKeyDown(KeyCode.Escape)) 
        {
            SceneManager.LoadScene("main");
        }

        #region 在一定时间内创建金鱼
         SmallGoldFishTime -= Time.deltaTime;
         BigGoldFishTime -= Time.deltaTime;
        if (BigGoldFishTime <= 0) 
        {
            CreatGoldFish(FishInfo.Big);
            BigGoldFishTime = Random.Range(180, 480);//3-8分钟出现一次大金鱼
        }
        else if (SmallGoldFishTime <= 0) 
        {
            CreatGoldFish(FishInfo.Small);
            SmallGoldFishTime = Random.Range(60, 180);//1-3分钟出现一次小金鱼
        }

        #endregion

        #region 在一定的时间里创建蓝鲨鱼

        BigFishTime -= Time.deltaTime;
        if (BigFishTime <= 0) 
        {
            CreatBigFish();
            BigFishTime = Random.Range(180, 300);
        }
        

        #endregion
    }
}

​

 


https://pan.baidu.com/s/1fiFiFOIXBmAjWlQPgIDMDg 提取码:us5q

这里是全部源码

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值