unity3d捕鱼源码

2016-07-26 09:36:32 zhaoguanghui2012 阅读数 34642
  • Unity 值得看的500+ 技术内容列表

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

微笑

http://mp.weixin.qq.com/s?__biz=MzIzOTE3OTY4MQ==&mid=403117808&idx=1&sn=b0e33875ce0a52f844f37772921ea835&scene=18#wechat_redirect


2-1    炉石传说 客户端加服务器端    

链接:http://pan.baidu.com/s/1dDKY3Fr 密码:c03q


2-2    新仙剑奇侠传    

链接:http://pan.baidu.com/s/1jH0fIuU 密码:k5xp


2-3    unity3d 战斗卡牌《变身吧主公》客户端+服务器源码    

链接:http://pan.baidu.com/s/1kUpot51 密码:i02u


2-4    降临OL-U3D全套源码    

链接:http://pan.baidu.com/s/1sktLQ5v 密码:we0g


2-5    武士2复仇    

链接:http://pan.baidu.com/s/1i4dhjRB 密码:a1yb


2-6   《神启》全套源码+资源    

链接:http://pan.baidu.com/s/1o6UP9rG 密码:1vbg


2-7    神庙逃亡之魔境仙踪    

链接:http://pan.baidu.com/s/1c1umpUS 密码:na83


2-8    《超级马里奥64》HD版unity源码    

链接:http://pan.baidu.com/s/1pKpMmwj 密码:d5d8


2-9    暗影之枪ShadowGun    

链接:http://pan.baidu.com/s/1qWYPnxa 密码:wsqo


2-10    unity3d跑酷游戏源码   

 链接:http://pan.baidu.com/s/1kU1z8FX 密码:nm3t


2-11    地牢破坏者001-Dungeon+Breaker+Starter+Kit+beta3    

链接:http://pan.baidu.com/s/1gez5Wv5 密码:l98y


2-12    LOL塔防项目源码、DNF格斗核心   

 链接:http://pan.baidu.com/s/1sk07yCt 密码:zw5t


2-13    火炬之光demo第四代    

链接:http://pan.baidu.com/s/1i4k8L4x 密码:mbqb


2-14    Advance Sniper Starter Kit 射击游戏源码    

链接:http://pan.baidu.com/s/1XrsVc 密码:66qt


2-15    Unity Rpg《江湖路》    

链接:http://pan.baidu.com/s/1PjJSM 密码:6gl2


2-16    Unity 3D《极品狂暴飞车》游戏源码   

 链接:http://pan.baidu.com/s/1qXrN2kk 密码:yj01


2-17    CS源码(支持局域网+广域网)    

链接:http://pan.baidu.com/s/1hqY0XW4 密码:hecp


2-18    《众神之光》卡牌u3d全套完整源码 + 资源    

链接:http://pan.baidu.com/s/1baEXqu 密码:s7en


2-19    《暗黑天使》源码    

链接:http://pan.baidu.com/s/1i3PCVWT 密码:2mkx


2-20    《暗黑战神》工程    

链接:http://pan.baidu.com/s/1kTSph5t 密码:736b


2-21    大型ARPG手游《降临》客户端服务端全套源码    

链接:http://pan.baidu.com/s/1nuvXnhn 密码:1t3e


2-22    大型《天神传》 RPG(客户端+服务器)    

链接:http://pan.baidu.com/s/1nuhKf9Z 密码:58vo


2-23    《口袋三国》客户端+服务器+设计文档   

 链接:http://pan.baidu.com/s/1kUtZFsN 密码:58vo


2-24    商业项目-《暗影之枪ShadowGun》    

链接:http://pan.baidu.com/s/1ntXARyT 密码:l3u5


2-25    商业项目-《降临OL》-U3D全套源码    

链接:http://pan.baidu.com/s/1c0Y9j3M 密码:gzmb


2-26    《捕鱼达人》源码    

链接:http://pan.baidu.com/s/1pKzravL 密码:gas3


2-27    《沉睡魔咒》    

链接:http://pan.baidu.com/s/1c1aAZQg 密码:c5j9


2-28    《单机斗地主》    

链接:http://pan.baidu.com/s/1hqL9Gmo 密码:qp6d


2-29    《合金弹头》Unity4.6.2    

链接:http://pan.baidu.com/s/1o7jemme 密码:6ngd


2-30    《黑暗灵魂》   

链接:http://pan.baidu.com/s/1dEn0cvf 密码:gi00


2-31    《梦幻昆仑》全套源码    

链接:http://pan.baidu.com/s/1i40jjxz 密码:zddg


2-32    《末日浩劫之歌》    

链接:http://pan.baidu.com/s/1i3QruEL 密码:qzil


2-33    DNF3D游戏源码    

链接:http://pan.baidu.com/s/1brAf2A 密码:63h2


2-34    《某某军团》    

链接:http://pan.baidu.com/s/1i4kAo7r 密码:4pu7


2-35    《农场模拟经营》游戏    

链接:http://pan.baidu.com/s/1kTUreGv 密码:3czd


2-36    《泡泡龙》    

链接:http://pan.baidu.com/s/1mgYsNiS 密码:e7b0


2-37    《全民飞机大战》源码    

链接:http://pan.baidu.com/s/1boj04cZ 密码:o2wo


2-38    三消类游戏《水果乐园》    

链接:http://pan.baidu.com/s/1eRv57oe 密码:bhtb


2-39    塔防游戏包    

链接:http://pan.baidu.com/s/1i4lWi7z 密码:lbez


2-40    仿神庙逃亡开发包 Infinite Runner Starter Pack 新版    

链接:http://pan.baidu.com/s/1pKtl1EV 密码:kyjw


2-41    高级塔防开发包Tower Defense ToolKit TDTK    

链接:http://pan.baidu.com/s/1boduL6f 密码:vtvj


2-42    Jewel Match Framework - PRO 1.1.2b消除类游戏框架    

链接:http://pan.baidu.com/s/1boeGOaj 密码:qoni


2-43    Deep Space Planets 太空星球 模型 源码    

链接:http://pan.baidu.com/s/1jHz1sYM 密码:4bkc


2-44    Bottle Shot (iPhone.Android) 移动版 酒吧砸瓶子    

链接:http://pan.baidu.com/s/1o7jKd3k 密码:ixiz


2-45    HeliHell Pack 直升机控制 环境地形 飞行    

链接:http://pan.baidu.com/s/1eRuPDNc 密码:1s2n


2-46    ipad版游戏《DOZ》僵尸游戏源码    

链接:http://pan.baidu.com/s/1dEgE52L 密码:v7lr


2-47    插件 跑酷 Ultimate Endless Runner Kit v1.03资源包    

链接:http://pan.baidu.com/s/1nuhexnj 密码:q817


2-48    3D Infinite Runner Toolkit v1.2 跑酷完整项目    

链接:http://pan.baidu.com/s/1i3ZeTxz 密码:68i6


2-49    2D横版infinite Runner Toolkit 项目资源包    

链接:http://pan.baidu.com/s/1ntQjts1 密码:0n8i


2-50    《最初的幻想》 工程文件(源码)    

链接:http://pan.baidu.com/s/1nuzvfGd 密码:yidn


2-51    《最后一战》 UNity4.6    

链接:http://pan.baidu.com/s/1nunPHYL 密码:p27a


2-52   《炉石传说》 客户端加服务器端    

链接:http://pan.baidu.com/s/1nuo5Pk1 密码:nxkf


2-53    《神庙逃亡之魔境仙踪》    

链接:http://pan.baidu.com/s/1sk8a39r 密码:hb3j


2-54    《武士2复仇》    

链接:http://pan.baidu.com/s/1mhzxee0 密码:gy8o


2-55    《完美国际》客户端+服务器端    

链接:http://pan.baidu.com/s/1o7xXoBC 密码:ul5b


2-56    消除游戏源码  内置关卡编译器   

链接:http://pan.baidu.com/s/1qXeWi9Q 密码:pgxh


2-57    永恒冒险    

链接:http://pan.baidu.com/s/1c1sRVPY 密码:r2nl


2-58    Ultimate MMO RPG Kit 在线 mmo rpg 游戏开发    

链接:http://pan.baidu.com/s/1dEr3Wzv 密码:0gyf


2-59    角色扮演开发包 ORK Okashi RPG Kit 源码1.2.5    

链接:http://pan.baidu.com/s/1mhq9ImW 密码:gcxw


2-60    地牢 Dungeon Breaker Starter Kit rpg    

链接:http://pan.baidu.com/s/1gehWvU7 密码:uyvq


2-61    ZERANO RPG KIT RPG类游戏框架    

链接:http://pan.baidu.com/s/1gdND9Hh 密码:vklu


2-62    NGUI背包系统    

链接:http://pan.baidu.com/s/1o7cs5bc 密码:azjh


2-63    unity3D RPG游戏开发包    

链接:http://pan.baidu.com/s/1pKtl1TD 密码:28fy


2-64    背包源码    

链接:http://pan.baidu.com/s/1jHnqeV0 密码:uc86


2-65    多项游戏方式事例    

链接:http://pan.baidu.com/s/1dEkIu7B 密码:hbef


2-66    高质量PFS游戏开发包    

链接:http://pan.baidu.com/s/1skw5gcd 密码:bq4r


2-67    《最初的幻想2》工程文件(源码)    

链接:http://pan.baidu.com/s/1kUwHugZ 密码:mlg7


2-68    官方超好画质的射击游戏源码    

链接:http://pan.baidu.com/s/1o7tTzJG 密码:581v


2-69    简陋的3D回合制游戏教程    

链接:http://pan.baidu.com/s/1mhm6as4 密码:juyh


2-70    决战到底(PVC动作)    

链接:http://pan.baidu.com/s/1sk5YB4h 密码:dhpt


2-71    淘宝cs源码    

链接:http://pan.baidu.com/s/1ntQjtzV 密码:rvmg


2-72    RPG背包、装备、物品、技能、商店、快捷键全套系统    

链接:http://pan.baidu.com/s/1i4z3qNb 密码:uy6e


2-73    小的功能模块    

链接:http://pan.baidu.com/s/1jGZcM0m 密码:odwq


2-74    《天天爱消除》 游戏Unity3D源码代码分享 绝对精品    

链接:http://pan.baidu.com/s/1nurTBKH 密码:mz1v


2-75    《小组行动:先进战士AI》项目源码    

链接:http://pan.baidu.com/s/1mgP5ywo 密码:gms7


2-76    模拟剑灵DNF开源了    

链接:http://pan.baidu.com/s/1skmvFqt 密码:ret5


2-77    换装CharacterCustomization    

链接:http://pan.baidu.com/s/1nufcsVv 密码:a4pb


2-78    最好用初音未来舞蹈工程文件   

链接:http://pan.baidu.com/s/1c1yrzkG 密码:4iff


2-79    坦克RPG项目     

链接:http://pan.baidu.com/s/1pK6IDFd 密码:mdr3


2-80    UI框架   

 链接:http://pan.baidu.com/s/1ge1fGqB 密码:k9v3


2-81    完整RPG《海战》手机游戏源码    

链接:http://pan.baidu.com/s/1kUMgphl 密码:qdzl


2-82    Unity3D常用代码总结    

链接:http://pan.baidu.com/s/1pKWN1iV 密码:w4w4

2019-06-26 18:38:38 weixin_42381718 阅读数 761
  • Unity 值得看的500+ 技术内容列表

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

开发软件: unity3d 、 vs2017
游戏简介: 在3D模式下开发的2D游戏,使用UGUI进行场景搭建,适合有一定unity基础的同学学习制作
●首先放上完成的图
开始界面
游戏主界面
运行图
●然后再放上主要功能的代码

控制枪的行为

using UnityEngine;

public class GunFollow : MonoBehaviour
{
    public RectTransform UGUICanvas;
    public Camera mainCamera;

    void Update()
    {
        Vector3 mousePos;
        RectTransformUtility.ScreenPointToWorldPointInRectangle(UGUICanvas, new Vector2
			(Input.mousePosition.x, Input.mousePosition.y), mainCamera, out mousePos);
        float z;
        if (mousePos.x > transform.position.x)
        {
            z = -Vector3.Angle(Vector3.up, mousePos - transform.position);
        }
        else
        {
            z = Vector3.Angle(Vector3.up, mousePos - transform.position);
        }
        transform.localRotation = Quaternion.Euler(0, 0, z);
    }
}

生成鱼及控制鱼的行为

using UnityEngine;
using System.Collections;

public class FishMaker : MonoBehaviour
{
    public Transform fishHolder;
    public Transform[] genPositions;
    public GameObject[] fishPrefabs;

    public float fishGenWaitTime = 0.5f;
    public float waveGenWaitTime = 0.3f;

    void Start()
    {
        InvokeRepeating("MakeFishes", 0, waveGenWaitTime);
    }

    void MakeFishes()
    {
        int genPosIndex = Random.Range(0, genPositions.Length);
        int fishPreIndex = Random.Range(0, fishPrefabs.Length);
        int maxNum = fishPrefabs[fishPreIndex].GetComponent<FishAttr>().maxNum;
        int maxSpeed = fishPrefabs[fishPreIndex].GetComponent<FishAttr>().maxSpeed;
        int num = Random.Range((maxNum / 2) + 1, maxNum);
        int speed = Random.Range(maxSpeed / 2, maxSpeed);
        int moveType = Random.Range(0, 2);      //0:直走;1:转弯
        int angOffset;                          //仅直走生效,直走的倾斜角
        int angSpeed;                           //仅转弯生效,转弯的角速度

        if (moveType == 0)
        {
            angOffset = Random.Range(-22, 22);
            StartCoroutine(GenStraightFish(genPosIndex, fishPreIndex, num, speed, angOffset));
        }
        else
        {
            if (Random.Range(0, 2) == 0)        //是否取负的角速度
            {
                angSpeed = Random.Range(-15, -9);
            }
            else
            {
                angSpeed = Random.Range(9, 15);
            }
            StartCoroutine(GenTrunFish(genPosIndex, fishPreIndex, num, speed, angSpeed));
        }
    }

    IEnumerator GenStraightFish(int genPosIndex,int fishPreIndex,int num,int speed,int angOffset)
    {
        for (int i = 0; i < num; i++)
        {
            GameObject fish = Instantiate(fishPrefabs[fishPreIndex]);
            fish.transform.SetParent(fishHolder, false);
            fish.transform.localPosition = genPositions[genPosIndex].localPosition;
            fish.transform.localRotation = genPositions[genPosIndex].localRotation;
            fish.transform.Rotate(0, 0, angOffset);
            fish.GetComponent<SpriteRenderer>().sortingOrder += i;
            fish.AddComponent<Ef_AutoMove>().speed = speed;
            yield return new WaitForSeconds(fishGenWaitTime);
        }
    }

    IEnumerator GenTrunFish(int genPosIndex, int fishPreIndex, int num, int speed, int angSpeed)
    {
        for (int i = 0; i < num; i++)
        {
            GameObject fish = Instantiate(fishPrefabs[fishPreIndex]);
            fish.transform.SetParent(fishHolder, false);
            fish.transform.localPosition = genPositions[genPosIndex].localPosition;
            fish.transform.localRotation = genPositions[genPosIndex].localRotation;
            fish.GetComponent<SpriteRenderer>().sortingOrder += i;
            fish.AddComponent<Ef_AutoMove>().speed = speed;
            fish.AddComponent<Ef_AutoRotate>().speed = angSpeed;
            yield return new WaitForSeconds(fishGenWaitTime);
        }
    }
}

鱼被打的结果

using UnityEngine;

public class FishAttr : MonoBehaviour
{
    public int hp;
    public int exp;
    public int gold;
    public int maxNum;
    public int maxSpeed;

    public GameObject diePrefab;
    public GameObject goldPrefab;

    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.tag == "Border")
        {
            Destroy(gameObject);
        }
    }

    void TakeDamage(int value)
    {
        hp -= value;
        if (hp <= 0)
        {
            GameController.Instance.gold += gold;
            GameController.Instance.exp += exp;
            GameObject die = Instantiate(diePrefab);
            die.transform.SetParent(gameObject.transform.parent, false);
            die.transform.position = transform.position;
            die.transform.rotation = transform.rotation;
            GameObject goldGo = Instantiate(goldPrefab);
            goldGo.transform.SetParent(gameObject.transform.parent, false);
            goldGo.transform.position = transform.position;
            goldGo.transform.rotation = transform.rotation;
            if (gameObject.GetComponent<Ef_PlayEffect>() != null)
            {
                AudioManager.Instance.PlayEffectSound(AudioManager.Instance.rewardClip);
                gameObject.GetComponent<Ef_PlayEffect>().PlayEffect();
            }
            Destroy(gameObject);
        }
    }
}

子弹发射事件

using UnityEngine;

public class BulletAttr : MonoBehaviour
{
    public int speed;
    public int damage;
    public GameObject webPrefab;

    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.tag == "Border")
        {
            Destroy(gameObject);
        }
        if (collision.tag == "Fish")
        {
            GameObject web = Instantiate(webPrefab);
            web.transform.SetParent(gameObject.transform.parent, false);
            web.transform.position = gameObject.transform.position;
            web.GetComponent<WebAttr>().damage = damage;
            Destroy(gameObject);
        }
    }
}

游戏主控制

using System.Collections;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;

public class GameController : MonoBehaviour
{
    private static GameController _instance;
    public static GameController Instance
    {
        get
        {
            return _instance;
        }
    }

    public Text oneShootCostText;
    public Text goldText;
    public Text lvText;
    public Text lvNameText;
    public Text smallCountdownText;
    public Text bigCountdownText;
    public Button bigCountdownButton;
    public Button backButton;
    public Button settingButton;
    public Slider expSlider;

    public int lv = 0;
    public int exp = 0;
    public int gold = 500;
    public const int bigCountdown = 240;
    public const int smallCountdown = 60;
    public float bigTimer = bigCountdown;
    public float smallTimer = smallCountdown;
    public Color goldColor;
    public int bgIndex = 0;

    public Image bgImage;
    public GameObject lvUpTips;
    public GameObject seaWaveEffect;
    public GameObject fireEffect;
    public GameObject changeEffect;
    public GameObject lvEffect;
    public GameObject goldEffect;

    public Transform bulletHolder;
    public Sprite[] bgSprites;
    public GameObject[] gunGos;
    public GameObject[] bullet1Gos;
    public GameObject[] bullet2Gos;
    public GameObject[] bullet3Gos;
    public GameObject[] bullet4Gos;
    public GameObject[] bullet5Gos;

    //使用的是第几档的炮弹
    private int costIndex = 0;
    //每一炮所需的金币数和造成的伤害值
    private int[] oneShootCosts = { 5, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000 };
    private string[] lvName = { "新手", "入门", "钢铁", "青铜", "白银", "黄金", "白金", "钻石", "大师", "宗师" };

    void Awake()
    {
        _instance = this;
    }

    void Start()
    {
        gold = PlayerPrefs.GetInt("gold", gold);
        lv = PlayerPrefs.GetInt("lv", lv);
        exp = PlayerPrefs.GetInt("exp", exp);
        smallTimer = PlayerPrefs.GetFloat("scd", smallCountdown);
        bigTimer = PlayerPrefs.GetFloat("bcd", bigCountdown);
        UpdateUI();
    }

    void Update()
    {
        ChangeBulletCost();
        Fire();
        UpdateUI();
        ChangeBg();
    }

    void ChangeBg()
    {
        if (bgIndex != lv / 20)
        {
            bgIndex = lv / 20;
            AudioManager.Instance.PlayEffectSound(AudioManager.Instance.seaWaveClip);
            Instantiate(seaWaveEffect);
            if (bgIndex >= 3)
            {
                bgImage.sprite = bgSprites[3];
            }
            else
            {
                bgImage.sprite = bgSprites[bgIndex];
            }
        }
    }

    void UpdateUI()
    {
        bigTimer -= Time.deltaTime;
        smallTimer -= Time.deltaTime;
        if (smallTimer <= 0)
        {
            smallTimer = smallCountdown;
            gold += 50;
        }
        if (bigTimer <= 0 && bigCountdownButton.gameObject.activeSelf == false)
        {
            bigCountdownText.gameObject.SetActive(false);
            bigCountdownButton.gameObject.SetActive(true);
        }
        //经验等级换算公式:升级所需经验=1000+200*当前等级
        while (exp >= 1000 + 200 * lv)
        {
            exp = exp - (1000 + 200 * lv);
            lv++;
            lvUpTips.SetActive(true);
            lvUpTips.transform.Find("Text").GetComponent<Text>().text = lv.ToString();
            StartCoroutine(lvUpTips.GetComponent<Ef_HideSelf>().HideSelf(0.6f));
            AudioManager.Instance.PlayEffectSound(AudioManager.Instance.lvUpClip);
            Instantiate(lvEffect);
        }
        goldText.text = "$" + gold;
        lvText.text = lv.ToString();
        if ((lv / 10) <= 9)
        {
            lvNameText.text = lvName[lv / 10];
        }
        else
        {
            lvNameText.text = lvName[9];
        }
        smallCountdownText.text = "  " + (int)smallTimer / 10 + "  " + (int)smallTimer % 10;
        bigCountdownText.text = (int)bigTimer + "s";
        expSlider.value = ((float)exp) / (1000 + 200 * lv);
    }

    void Fire()
    {
        GameObject[] useBullets = bullet5Gos;
        int bulletIndex;
        if (Input.GetMouseButtonDown(0) && EventSystem.current.IsPointerOverGameObject() == false)
        {
            if (gold - oneShootCosts[costIndex] >= 0)
            {
                switch (costIndex / 4)
                {
                    case 0: useBullets = bullet1Gos; break;
                    case 1: useBullets = bullet2Gos; break;
                    case 2: useBullets = bullet3Gos; break;
                    case 3: useBullets = bullet4Gos; break;
                    case 4: useBullets = bullet5Gos; break;
                }
                bulletIndex = (lv % 10 >= 9) ? 9 : lv % 10;
                gold -= oneShootCosts[costIndex];
                AudioManager.Instance.PlayEffectSound(AudioManager.Instance.fireClip);
                Instantiate(fireEffect);
                GameObject bullet = Instantiate(useBullets[bulletIndex]);
                bullet.transform.SetParent(bulletHolder, false);
                bullet.transform.position = gunGos[costIndex / 4].transform.Find("FirePos").transform.position;
                bullet.transform.rotation = gunGos[costIndex / 4].transform.Find("FirePos").transform.rotation;
                bullet.GetComponent<BulletAttr>().damage = oneShootCosts[costIndex];
                bullet.AddComponent<Ef_AutoMove>().dir = Vector3.up;
                bullet.GetComponent<Ef_AutoMove>().speed = bullet.GetComponent<BulletAttr>().speed;
            }
            else
            {
                StartCoroutine(GoldNotEnough());
            }
        }
    }

    void ChangeBulletCost()
    {
        if (Input.GetAxis("Mouse ScrollWheel") < 0)
        {
            OnButtonMDown();
        }
        if (Input.GetAxis("Mouse ScrollWheel") > 0)
        {
            OnButtonPDown();
        }
    }

    public void OnButtonPDown()
    {
        gunGos[costIndex / 4].SetActive(false);
        costIndex++;
        AudioManager.Instance.PlayEffectSound(AudioManager.Instance.changeClip);
        Instantiate(changeEffect);
        costIndex = (costIndex > oneShootCosts.Length - 1) ? 0 : costIndex;
        gunGos[costIndex / 4].SetActive(true);
        oneShootCostText.text = "$" + oneShootCosts[costIndex];
    }

    public void OnButtonMDown()
    {
        gunGos[costIndex / 4].SetActive(false);
        costIndex--;
        AudioManager.Instance.PlayEffectSound(AudioManager.Instance.changeClip);
        Instantiate(changeEffect);
        costIndex = (costIndex < 0) ? oneShootCosts.Length - 1 : costIndex;
        gunGos[costIndex / 4].SetActive(true);
        oneShootCostText.text = "$" + oneShootCosts[costIndex];
    }

    public void OnBigCountdownButtonDown()
    {
        gold += 500;
        AudioManager.Instance.PlayEffectSound(AudioManager.Instance.rewardClip);
        Instantiate(goldEffect);
        bigCountdownButton.gameObject.SetActive(false);
        bigCountdownText.gameObject.SetActive(true);
        bigTimer = bigCountdown;
    }

    IEnumerator GoldNotEnough()
    {
        goldText.color = goldColor;
        goldText.color = Color.red;
        yield return new WaitForSeconds(0.5f);
        goldText.color = goldColor;
    }
}

音效控制

using UnityEngine;

public class AudioManager : MonoBehaviour
{
    private static AudioManager _instance;
    public static AudioManager Instance
    {
        get
        {
            return _instance;
        }
    }
    private bool isMute = false;
    public bool IsMute
    {
        get
        {
            return isMute;
        }
    }

    public AudioSource bgmAudioSource;
    public AudioClip seaWaveClip;
    public AudioClip goldClip;
    public AudioClip rewardClip;
    public AudioClip fireClip;
    public AudioClip changeClip;
    public AudioClip lvUpClip;

    void Awake()
    {
        _instance = this;
        isMute = (PlayerPrefs.GetInt("mute", 0) == 0) ? false : true;
        DoMute();
    }

    public void SwitchMuteState(bool isOn)
    {
        isMute = !isOn;
        DoMute();
    }

    void DoMute()
    {
        if (isMute)
        {
            bgmAudioSource.Pause();
        }
        else
        {
            bgmAudioSource.Play();
        }
    }

    public void PlayEffectSound(AudioClip clip)
    {
        if (!isMute)
        {
            AudioSource.PlayClipAtPoint(clip, new Vector3(0, 0, -5));
        }
    }
}

还有一些简单的代码就不一一贴出来了,然后说明一下游戏素材是在siki学院下载的,制作教程那里也有,然后再附上游戏完整项目链接:https://pan.baidu.com/s/1yoyPGTIjH9IgHwr32jlJvQ 提取码:c336

PC版exe程序:https://pan.baidu.com/s/1zDhr_0BIym7J7c2a46nl7Q 提取码:wumu
**最后再总结一下:**学习U3D也快三个月了,这是自己第一个真正完整的游戏作品,从一开始的怎样搭建游戏场景到代码编写挂载等到游戏成功按预期运行,每解决一个bug都能感受到自己的进步,同时学习的越多却越发觉得学的还不够多,是啊,本来做程序就是个不断学习的事,所以,如果想在程序上走的更远,一定不要停下你学习的脚步,共勉。

2018-03-01 15:10:30 qq_38265784 阅读数 0
  • Unity 值得看的500+ 技术内容列表

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

创建Image

这里写图片描述

对创建的Canvas进行设置

这里写图片描述

这里写图片描述

对Image进行属性修改

这里写图片描述

按住 option (mac) 或者 alt (win),会发生变化,选择了右下角的那个

这里写图片描述
拖入背景图

创建LogoImage

这里写图片描述
在Canvas中再创建一个Image,修改名称为Logo,拖入图片,设置大小,设置到合适的位置

创建开始与继续按钮

再创建两个Image,取名为NewGame和ContinueGame,添加图片,在给图片添加button
这里写图片描述
这里写图片描述

在NewGame和ContinueGame添加Text

这里写图片描述

对文字进行设置
这里写图片描述
command + d (mac)control + d (win)可以拷贝一份

增加气泡效果

在素材中找到气泡拖进去,为四个珊瑚从都安上气泡效果
这里写图片描述
按住 E 可对气泡进行旋转
不选中效果Unity不会直接播放

创建一个空物体收纳气泡效果,使用前要将空物体归零,不然会影响到收纳的坐标
这里写图片描述

2018-03-01 19:42:04 qq_38265784 阅读数 3028
  • Unity 值得看的500+ 技术内容列表

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

复制场景

可以沿用start的场景,删除Logo和按钮即可
通过command+D复制start修改名字
这里写图片描述

添加水波纹

创建一个3D的plane
这里写图片描述
先将plane清零,取出碰撞体,坐标不是固定的,由实际情况而定,将plane放在镜头和Main Camera之间,让plane将其挡住
这里写图片描述
为其拖一个水波纹的材质,对图片进行特殊处理,但是是静态的,需要脚本让其跑起来
这里写图片描述
效果图
这里写图片描述

Ef_WaterWave.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Ef_WaterWave : MonoBehaviour {
    // 材质
    public Material material;
    // 材质里面的图片数组
    public Texture[] textures;
    // 当前已经放到图片的编号
    private int index = 0;

    void Start () {
        // 获取当前plane的材质
        material = GetComponent<MeshRenderer>().material;
        // 因为Update是按照一帧一帧计算的,太快了所以使用InvokeRepeating
        // p1:方法名 p2:时间间隔 p3:速率
        InvokeRepeating("changeText", 0, 0.1f);
    }
    // 切换材质里图片的函数
    void changeText(){
        // 主材质里的索引图
        material.mainTexture = textures[index];
        // index按照textures长度循坏
        index = (index + 1) % textures.Length;

    }
    void Update () {

    }
}

给plane挂上脚本,再赋值
这里写图片描述

返回按钮

创建一个新的Canvas,让其Order in Layer为90,即这个Canvas里的所有控件都在默认层下,次序为90
这里写图片描述

在新的Canvas中创建返回按钮
这里写图片描述
同样的方法创建一个设置按钮,创建一个空项目对他们进行分类,空项目的锚点要用按住option的右下角的那个
这里写图片描述

倒计时

这里写图片描述

等级

这里写图片描述
填充物
这里写图片描述
这里写图片描述
然后再调整填充物和被填充的尺寸
这里写图片描述
取消滑动条的可交互,不然用户可以更改经验值

炮台

底座

这里写图片描述

炮的组装

这里写图片描述

杂七杂八最终显示效果如图
这里写图片描述
这里写图片描述

炮随鼠标转动

这里写图片描述
要让中间的那根轴和鼠标一起转动
在API中找到一个方法

public static bool ScreenPointToWorldPointInRectangle(RectTransform rect, Vector2 screenPoint, Camera cam, out Vector3 worldPoint); 

返回鼠标在当前Canvas的坐标

为炮台旋转写的脚本GunFollow.cs

public class GunFollow : MonoBehaviour {
    // 枪在Canvas中,需要取到Canvas
    public RectTransform UGUICanvas;
    // 方法需要传入Camera,可以用Camera.main代替,但是有多个Camera可能会出现问题
    public Camera mainCamera;
    void Start () {

    }

    void Update () {
        // 方法返回的计算好的值,鼠标在当前Canvas的坐标
        Vector3 mousePost;
        RectTransformUtility.ScreenPointToWorldPointInRectangle
                            (UGUICanvas,
                             new Vector2(Input.mousePosition.x, Input.mousePosition.y),
                             mainCamera,out mousePost);
        // 获得旋转的角度
        float z;
        // 判断鼠标在炮台的左方还是右方
        if (mousePost.x > transform.position.x)
        {
            // 返回的永远是正值,右边的角度是负值,所以要变号
            z = -Vector3.Angle(Vector3.up, mousePost - transform.position);
        }
        else
        {
            z = Vector3.Angle(Vector3.up, mousePost - transform.position);
        }
        // Quaternion四元数,localRotation只接受四元数
        // Quaternion.Euler:欧拉角对应的四元数
        transform.localRotation = Quaternion.Euler(0, 0, z);
    }
}

这里写图片描述

2017-05-06 14:57:00 weixin_33806300 阅读数 116
  • Unity 值得看的500+ 技术内容列表

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

2-0    暗黑破坏神3  

链接:http://pan.baidu.com/s/1dEAUZoX 密码:cly4

 

2-1    炉石传说 客户端加服务器端    

链接:http://pan.baidu.com/s/1dDKY3Fr 密码:c03q

 

2-2    新仙剑奇侠传    

链接:http://pan.baidu.com/s/1b4QVqI 密码:dic5

 

2-3    unity3d 战斗卡牌《变身吧主公》客户端+服务器源码    

链接:http://pan.baidu.com/s/1kUpot51 密码:i02u

 

2-4    降临OL-U3D全套源码    

链接:http://pan.baidu.com/s/1sktLQ5v 密码:we0g

 

2-5    武士2复仇    

链接:http://pan.baidu.com/s/1i4dhjRB 密码:a1yb

 

2-6   《神启》全套源码+资源    

链接:http://pan.baidu.com/s/1o6UP9rG 密码:1vbg

 

2-7    神庙逃亡之魔境仙踪    

链接:http://pan.baidu.com/s/1c1umpUS 密码:na83

 

2-8    《超级马里奥64》HD版unity源码    

链接:http://pan.baidu.com/s/1c2BOE3m 密码:tbv9

 

2-9    暗影之枪ShadowGun    

链接:http://pan.baidu.com/s/1qWYPnxa 密码:wsqo

 

2-10    unity3d跑酷游戏源码    

链接:http://pan.baidu.com/s/1kU1z8FX 密码:nm3t

 

2-11    地牢破坏者001-Dungeon+Breaker+Starter+Kit+beta3    

链接:http://pan.baidu.com/s/1gez5Wv5 密码:l98y

 

2-12    LOL塔防项目源码、DNF格斗核心    

链接:http://pan.baidu.com/s/1sk07yCt 密码:zw5t

 

2-13    火炬之光demo第四代    

链接:http://pan.baidu.com/s/1i4k8L4x 密码:mbqb

 

2-14    Advance Sniper Starter Kit 射击游戏源码    

链接:http://pan.baidu.com/s/1XrsVc 密码:66qt

 

2-15    Unity Rpg《江湖路》    

链接:http://pan.baidu.com/s/1PjJSM 密码:6gl2

 

2-16    Unity 3D《极品狂暴飞车》游戏源码    

链接:http://pan.baidu.com/s/1qXrN2kk 密码:yj01

 

2-17    CS源码(支持局域网+广域网)    

链接:http://pan.baidu.com/s/1hqY0XW4 密码:hecp

 

2-18    《众神之光》卡牌u3d全套完整源码 + 资源    

链接:http://pan.baidu.com/s/1baEXqu 密码:s7en

 

2-19    《暗黑天使》源码  

链接:http://pan.baidu.com/s/1kVhilBh 密码:kd8g

 

2-20    《暗黑战神》工程    

链接:http://pan.baidu.com/s/1kTSph5t 密码:736b

 

2-21    大型ARPG手游《降临》客户端服务端全套源码    

链接:http://pan.baidu.com/s/1nuvXnhn 密码:1t3e

 

2-22    大型《天神传》 RPG(客户端+服务器)    

链接:http://pan.baidu.com/s/1nuhKf9Z 密码:58vo

 

2-23    《口袋三国》客户端+服务器+设计文档    

链接:http://pan.baidu.com/s/1kUtZFsN 密码:58vo

 

2-24    商业项目-《暗影之枪ShadowGun》    

链接:http://pan.baidu.com/s/1ntXARyT 密码:l3u5

 

2-25    商业项目-《降临OL》-U3D全套源码    

链接:http://pan.baidu.com/s/1c0Y9j3M 密码:gzmb

 

2-26    《捕鱼达人》源码    

链接:http://pan.baidu.com/s/1pKzravL 密码:gas3

 

2-27    《沉睡魔咒》    

链接:http://pan.baidu.com/s/1c1aAZQg 密码:c5j9

 

2-28    《单机斗地主》    

链接:http://pan.baidu.com/s/1hqL9Gmo 密码:qp6d

 

2-29    《合金弹头》Unity4.6.2    

链接:http://pan.baidu.com/s/1o7jemme 密码:6ngd

 

2-30    《黑暗灵魂》   

链接:http://pan.baidu.com/s/1dEn0cvf 密码:gi00

 

2-31    《梦幻昆仑》全套源码  

链接:http://pan.baidu.com/s/1i40jjxz 密码:zddg

 

2-32    《末日浩劫之歌》    

链接:http://pan.baidu.com/s/1i3QruEL 密码:qzil

 

2-33    DNF3D游戏源码    

链接:http://pan.baidu.com/s/1brAf2A 密码:63h2

 

2-34    《某某军团》    

链接:http://pan.baidu.com/s/1i4kAo7r 密码:4pu7

 

2-35    《农场模拟经营》游戏    

链接:http://pan.baidu.com/s/1kTUreGv 密码:3czd

 

2-36    《泡泡龙》    

链接:http://pan.baidu.com/s/1mgYsNiS 密码:e7b0

 

2-37    《全民飞机大战》源码    

链接:http://pan.baidu.com/s/1boj04cZ 密码:o2wo

 

2-38    三消类游戏《水果乐园》    

链接:http://pan.baidu.com/s/1eRv57oe 密码:bhtb

 

2-39    塔防游戏包    

链接:http://pan.baidu.com/s/1i4lWi7z 密码:lbez

 

2-40    仿神庙逃亡开发包 Infinite Runner Starter Pack 新版    

链接:http://pan.baidu.com/s/1pKtl1EV 密码:kyjw

 

2-41    高级塔防开发包Tower Defense ToolKit TDTK    

链接:http://pan.baidu.com/s/1boduL6f 密码:vtvj

 

2-42    Jewel Match Framework - PRO 1.1.2b消除类游戏框架    

链接:http://pan.baidu.com/s/1boeGOaj 密码:qoni

 

2-43    Deep Space Planets 太空星球 模型 源码    

链接:http://pan.baidu.com/s/1jHz1sYM 密码:4bkc

 

2-44    Bottle Shot (iPhone.Android) 移动版 酒吧砸瓶子    

链接:http://pan.baidu.com/s/1o7jKd3k 密码:ixiz

 

2-45    HeliHell Pack 直升机控制 环境地形 飞行    

链接:http://pan.baidu.com/s/1eRuPDNc 密码:1s2n

 

2-46    ipad版游戏《DOZ》僵尸游戏源码    

链接:http://pan.baidu.com/s/1dEgE52L 密码:v7lr

 

2-47    插件 跑酷 Ultimate Endless Runner Kit v1.03资源包    

链接:http://pan.baidu.com/s/1nuhexnj 密码:q817

 

2-48    3D Infinite Runner Toolkit v1.2 跑酷完整项目    

链接:http://pan.baidu.com/s/1i3ZeTxz 密码:68i6

 

2-49    2D横版infinite Runner Toolkit 项目资源包    

链接:http://pan.baidu.com/s/1ntQjts1 密码:0n8i

 

2-50    《最初的幻想》 工程文件(源码)    

链接:http://pan.baidu.com/s/1nuzvfGd 密码:yidn

 

2-51    《最后一战》 UNity4.6    

链接:http://pan.baidu.com/s/1nunPHYL 密码:p27a

 

2-52   《炉石传说》 客户端加服务器端    

链接:http://pan.baidu.com/s/1nuo5Pk1 密码:nxkf

 

2-53    《神庙逃亡之魔境仙踪》    

链接:http://pan.baidu.com/s/1sk8a39r 密码:hb3j

 

2-54    《武士2复仇》    

链接:http://pan.baidu.com/s/1mhzxee0 密码:gy8o

 

2-55    《完美国际》客户端+服务器端    

链接:http://pan.baidu.com/s/1o7xXoBC 密码:ul5b

 

2-56    消除游戏源码  内置关卡编译器    

链接:http://pan.baidu.com/s/1qXeWi9Q 密码:pgxh

 

2-57    永恒冒险    

链接:http://pan.baidu.com/s/1c1sRVPY 密码:r2nl

 

2-58    Ultimate MMO RPG Kit 在线 mmo rpg 游戏开发    

链接:http://pan.baidu.com/s/1dEr3Wzv 密码:0gyf

 

2-59    角色扮演开发包 ORK Okashi RPG Kit 源码1.2.5    

链接:http://pan.baidu.com/s/1mhq9ImW 密码:gcxw

 

2-60    地牢 Dungeon Breaker Starter Kit rpg    

链接:http://pan.baidu.com/s/1gehWvU7 密码:uyvq

 

2-61    ZERANO RPG KIT RPG类游戏框架    

链接:http://pan.baidu.com/s/1gdND9Hh 密码:vklu

 

2-62    NGUI背包系统    

链接:http://pan.baidu.com/s/1o7cs5bc 密码:azjh

 

2-63    unity3D RPG游戏开发包    

链接:http://pan.baidu.com/s/1pKtl1TD 密码:28fy

 

2-64    背包源码    

链接:http://pan.baidu.com/s/1jHnqeV0 密码:uc86

 

2-65    多项游戏方式事例    

链接:http://pan.baidu.com/s/1dEkIu7B 密码:hbef

 

2-66    高质量PFS游戏开发包    

链接:http://pan.baidu.com/s/1skw5gcd 密码:bq4r

 

2-67    《最初的幻想2》工程文件(源码)    

链接:http://pan.baidu.com/s/1kUwHugZ 密码:mlg7

 

2-68    官方超好画质的射击游戏源码    

链接:http://pan.baidu.com/s/1o7tTzJG 密码:581v

 

2-69    简陋的3D回合制游戏教程    

链接:http://pan.baidu.com/s/1mhm6as4 密码:juyh

 

2-70    决战到底(PVC动作)    

链接:http://pan.baidu.com/s/1sk5YB4h 密码:dhpt

 

2-71    淘宝cs源码    

链接:http://pan.baidu.com/s/1ntQjtzV 密码:rvmg

 

2-72    RPG背包、装备、物品、技能、商店、快捷键全套系统    

链接:http://pan.baidu.com/s/1i4z3qNb 密码:uy6e

 

2-73    小的功能模块    

链接:http://pan.baidu.com/s/1jGZcM0m 密码:odwq

 

2-74    《天天爱消除》 游戏Unity3D源码代码分享 绝对精品    

链接:http://pan.baidu.com/s/1nurTBKH 密码:mz1v

 

2-75    《小组行动:先进战士AI》项目源码    

链接:http://pan.baidu.com/s/1mgP5ywo 密码:gms7

 

2-76    模拟剑灵DNF开源了    

链接:http://pan.baidu.com/s/1skmvFqt 密码:ret5

 

2-77    换装CharacterCustomization    

链接:http://pan.baidu.com/s/1nufcsVv 密码:a4pb

 

2-78    最好用初音未来舞蹈工程文件   

链接:http://pan.baidu.com/s/1c1yrzkG 密码:4iff

 

2-79    坦克RPG项目     

链接:http://pan.baidu.com/s/1pK6IDFd 密码:mdr3

 

2-80    UI框架    

链接:http://pan.baidu.com/s/1o82aOGU 密码:lyy3

 

2-81    完整RPG《海战》手机游戏源码    

链接:http://pan.baidu.com/s/1kUMgphl 密码:qdzl

 

2-82    Unity3D常用代码总结    

链接:http://pan.baidu.com/s/1dFofiKh 密码:9idz

 

2-83    音乐节奏休闲游戏源码 guitar hero 支持mobile    

链接:http://pan.baidu.com/s/1jIB9FwU 密码:77h7

 

2_84_   网游 《太极熊猫OL》全套源码 & 资源 22GB    

链接:http://pan.baidu.com/s/1qXNY3qW 密码:05hx

 

2_85_   RPG游戏《暴力魔盒兄弟》源码    

链接:http://pan.baidu.com/s/1jIBAjWi 密码:zq19

 

2_86_卡通横版冒险游戏-《香蕉岛》源码    

链接:http://pan.baidu.com/s/1sl5qYLZ 密码:zj7b

 

2_87_终极战区客户端源码+服务器端源码+工具源码   

链接:http://pan.baidu.com/s/1pLhEUAv 密码:j4lh

 

2_88_中东战争 源码    

链接:http://pan.baidu.com/s/1ge4aeA3 密码:gtir

 

2_89_龙骑战歌    

链接:http://pan.baidu.com/s/1gfv3n9L 密码:6uc5

 

2_90_三消游戏《宝石消消乐》工程源码    

链接:http://pan.baidu.com/s/1jH8EuYa 密码:1n2b

乐多捕鱼搭建记录

阅读数 794

UNITY游戏开发源码

阅读数 3985