1. 程式人生 > >Unity GoldGame小遊戲實現(Collision碰撞檢測)

Unity GoldGame小遊戲實現(Collision碰撞檢測)

遊戲介面:

遊戲實現思路:

遊戲開始隨機生成5個Box

鍵盤輸入控制Player移動 當Player碰撞到物體 檢測物體身上標籤 

如果Tag為Box則Box銷燬 在其位置生成一個Gold

如果Tag為Gold則Gold銷燬 得分+1

遊戲實現過程:

所需物體: Box Gold(Prefabs)用於例項化、Player、Text(計算得分)CreatBOx(空物體,控制Box生成)

所需指令碼:

Gold  掛載在預製體Gold上,實現金幣自動旋轉

using UnityEngine;
using System.Collections;

public class Gold : MonoBehaviour {

    private Transform transform;
	void Start () {
        transform = gameObject.GetComponent<Transform>();
	}
	void Update () {
       //使物體旋轉
        transform.Rotate(Vector3.left,5);
	}
}

Box 掛載在預製體Box上 實現物體生成後3-5s內銷燬

using UnityEngine;
using System.Collections;

public class Box : MonoBehaviour {

	// Use this for initialization
	void Start () {
        //銷燬物體 隨機3-5s
        GameObject.Destroy(gameObject, Random.Range(3, 5));
	}
	
}

CreatBox 掛載在物體CreatBox上 實現Box的生成

using UnityEngine;
using System.Collections;

public class CreatBox : MonoBehaviour {

    public GameObject prefabs;
	void Start () {
        //呼叫函式 開始3s後呼叫 每隔3s執行一次
        InvokeRepeating("Creatbox", 3, 3);
	}
    void Creatbox() {
        for (int i = 0; i < 5; i++)
        {
            //例項化物件(預製體,隨機位置,不旋轉)
            GameObject.Instantiate(prefabs,new Vector3(Random.Range(-4.5f,4.5f),5, Random.Range(-4.5f, 4.5f)),Quaternion.identity);
        }
    }
}

Play 掛載在物體Palyer上 控制物體移動 及碰撞檢測及得分

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

public class Play: MonoBehaviour
{
    private Rigidbody rigidbody;
    public GameObject gold;
    public Text text;
    int Score = 0;
    void Start()
    {
        rigidbody = gameObject.GetComponent<Rigidbody>();
    }

    // Update is called once per frame
    void Update()
    {
        //輸入檢測 給Rigidbody新增力 實現物體移動 
        if (Input.GetKey(KeyCode.W))
        {
            rigidbody.AddForce(Vector3.forward * 10, ForceMode.Force);
        }
        if (Input.GetKey(KeyCode.S))
        {
            rigidbody.AddForce(Vector3.back * 10, ForceMode.Force);
        }
        if (Input.GetKey(KeyCode.A))
        {
            rigidbody.AddForce(Vector3.left * 10, ForceMode.Force);
        }
        if (Input.GetKey(KeyCode.D))
        {
            rigidbody.AddForce(Vector3.right * 10, ForceMode.Force);
        }
    }
    private void OnCollisionEnter(Collision collision)
    {
        //碰撞檢測 
        /*Box就銷燬盒子 然後例項化金幣
         * Gold就得分+1
         */
        if (collision.gameObject.tag == "Box")
        {
            print("1");
            Vector3 vector = collision.transform.position;
            print("2");
            GameObject.Destroy(collision.gameObject);
            GameObject.Instantiate(gold, vector + Vector3.forward, Quaternion.identity);
        }
        if (collision.gameObject.tag == "Gold")
        {
            GameObject.Destroy(collision.gameObject);
            Score++;
            text.text = "得分:" + Score;

        }
    }
}

相關推薦

Unity GoldGame遊戲實現Collision碰撞檢測

遊戲介面: 遊戲實現思路: 遊戲開始隨機生成5個Box 鍵盤輸入控制Player移動 當Player碰撞到物體 檢測物體身上標籤  如果Tag為Box則Box銷燬 在其位置生成一個Gold 如果Tag為Gold則Gold銷燬 得分+1 遊戲實現過程: 所

U3D 簡化版跳一跳遊戲 實現新手入門 附原始碼下載連結,整個工程檔案

今年三月份在CSDN上傳了一個資源,U3D版本跳一跳小遊戲的原始碼,並附帶了下述的說明,現在補充一篇部落格,簡單說一下具體是怎麼實現的。(新手入門)使用U3D開發的跳一跳小遊戲,入門級,沒有複雜的程式碼,只是簡單的功能實現,程式碼使用C#,unity版本2017 適合初學者提

【總結篇】js編寫的2048遊戲開發上:思路

2048是大家都熟悉的一款魔性小遊戲,其操作簡單,卻極其有效地殺時間。本篇將詳細講解如何構建這款小遊戲的開發思路、如何根據玩法進一步分析設計程式設計結構,適合有一定html、css、js、jquery語言基礎的讀者閱讀。 一.遊戲試玩       遊戲玩法大家都很

用QT庫寫的一個遊戲——FlappyBird憤怒的小鳥

最近瀏覽網站的時候,忘記在哪裡看的這個FlappyBird了,這個小遊戲在前兩年小火了一段時間。今天用QT簡單的實現了一把,然後在網上找了一些相關的切圖,便進行了製作。難度不是很大,只是通過寫這篇部落格,能有點啟發以及大家共同學習。 如果你對C語言C++感興趣,那麼歡迎加入學

通過「解救人質」遊戲教你學會碰撞檢測

遊戲開發中,碰撞檢測無處不在,今天就通過一個簡單的小遊戲教你學會如何在 Cocos Creator 中進行碰撞檢測。配合官方文件學習效果更加(官方文件傳送門:https://docs.cocos.com/creator/manual/zh/physics/collision/),關注公眾號「遊戲開發小白變怪獸

unity_功能實現避免遊戲對象被銷毀時聲音消失

銷毀 碰撞檢測 obj .get pla public tco 發生 cli 在遊戲中我們使用碰撞檢測,當兩個物體發生碰撞時產生聲音音效,代碼如下: 如果使用上述代碼,我們會發現,在腳本中使用AudioSource聲明該聲音,當該物體被銷毀時聲音也會立刻停止。 但是

unity_功能實現碰撞檢測

dbo pla 打開 ide 發生 oid 區域 col 位置 unity_小功能實現(碰撞檢測) 1.觸發器Trigger:勾選IsTrigger屬性 //當player剛進入觸發區域的時刻發生觸發檢測,比如在靠近門的某個區域門一直處於開著狀態 void OnTri

遊戲---掃雷C語言實現

一、分析遊戲步驟: 具體步驟如圖:       二、程式碼實現: 遊戲步驟想好之後,就是用程式碼把步驟一步一步的實現。具體程式碼如下: 1、遊戲主要實現: game.c #define _CRT_SECURE_NO_WARNINGS

三子棋------遊戲c語言實現超清晰邏輯

今天用c語言來實現一個簡單有趣的小遊戲————三子棋! 三子棋的規則應該都不陌生吧 -_- ....... 我一步,你(電腦)一步,無論是誰,每下完一步,就判斷是否有三顆棋子在一條直線上,若在,則誰WIN!! (這句話有待會寫程式碼的邏輯思路喲!!) 好啦,現在開始著手如何實現整個程式碼&n

Unity 使用物理射線Physics.Raycast實現扇形區域碰撞檢測三種方法

Unity 使用物理射線(Physics.Raycast),實現扇形(Fan-Shaped)區域碰撞檢測。   網上已經很多實現扇形檢測的方法。大部分都是用MeshCollider實現的。而據說MeshCollider這東西很耗效能(沒有親測),所以就用射

unity_功能實現客戶端相互通信功能

直接 endpoint 客戶端和服務器端 network hat sockets odi family void 服務器端:在VS中新建項目,用於服務器的搭建 using System;using System.Collections.Generic; using

【微信遊戲遊戲開發調試--關於找不到app.json入口文件

com png info alt 微信開發者 遊戲 進入 http 找不到 經了解發現 小程序必須要有app.json 小遊戲必須的文件只有2個 game.js  小遊戲入口文件 game.json  小遊戲配置文件 所以不是工程文件缺失,解決方案如下: 進入微信開發者工具

微信程式之下拉列表實現附完整原始碼

目錄 一、效果圖 二、實現原理 三、原始碼 四、專案下載 同類文章推薦: 更多幹貨關注公眾號:   一、效果圖 二、實現原理 跟網頁的下拉列表實現是一樣的,剛剛開始預設下拉的內容的是不顯示的(display:none),然後通過點選的時

微信程式之側邊欄滑動實現附完整原始碼

目錄 一、效果圖 二、原理解析 三、原始碼 四、專案下載 同類文章推薦: 更多幹貨關注公眾號: 一、效果圖 講什麼都不如直接上效果圖好,所以我們先來看下實現效果如何。 通過滑動螢幕,或者點選左上角的圖示按鈕,都能實現側邊欄的劃出效果。   &nb

Java遊戲DanceWithStars:修改本地文件中的圖片圖片寬高和圖片型別以及將圖片設定為JButton的影象

1. 修改本地文件中的圖片(圖片寬高和圖片型別) 為了使下載的圖片素材都具有統一的width和height,需要對下載來的圖片重新處理並另存 主要思想是:構造一個BufferedImage物件,用ImageIO.read()讀入,再用ImageIO.write()重畫 程式碼如下: 1 pac

python遊戲學習 猜字謎

猜字謎 利用python寫出一個簡單的猜字謎小遊戲,遊戲規則如下: 一個人先在心裡想出一個數字,由另外一個人去猜,猜的人可以知道說的數比想的那個數字大還是小,有七次機會,次數可以自己設定,其中一個人的想的數用隨機函式產生,具體的原始碼如下: impor

微信遊戲基礎

好處:可以提高程式碼的複用性 使用關鍵字extends,extends的意思是擴充套件 class People{ constructor(name){ this.name = name; } eat(){ console.log("我能吃"); } run

微信遊戲開發11-檔案系統

檔案系統 檔案系統是小程式提供的一套以小程式和使用者維度隔離的儲存以及一套響應的管理介面。通過wx.getFilesSystemManager()可以獲取到全域性唯一的檔案管理器,所有檔案管理操作通過FileSystemManager來呼叫。 ··· var fs = wx.getF

微信遊戲開發10-音訊播放

小遊戲內只有一種音訊播放的方式,即使用InnerAudioContext來播放。 使用InnerAudioContext播放 通過wx.createInnerAudioContext()介面可以建立一個音訊例項innerAudioContext,通過這個例項可以播放音訊。 ···

微信遊戲開發8-模組化

模組化 小程式提供了CommonJS風格的模組API,可以通過module.expotrs和exports匯出模組,通過require引入模組。 我們在根目錄下新建資料夾src,再在src中新建資料夾util,在util中新建module.js。 |----src | |---