1. 程式人生 > >Unity3d 區域網小遊戲DEMO學習

Unity3d 區域網小遊戲DEMO學習

今天看了SIKI老師的區域網多人聯機小遊戲,記錄下:

首先新建GameObject,新增NetworkManager元件和NetworkManagerHUD元件。

1.NetworkManager:Spawn Info->PlayerPrefab可放置prefab,在客戶端執行時自動生成玩家。可以新增在Server生成的prefab,如敵人,子彈等。

NetworkManagerHUD:為相關GUI介面,新建客戶端,連結客戶端等。

2.新建Player預置物體:新增控制移動,和發射子彈的指令碼

[Command]//客戶端呼叫,伺服器端生成。
private void CmdFire()//方法要以Cmd開頭
{
	GameObject bullet = Instantite(bullt,bulttransform.position,bulttiansform.rotation) as GameObject;//在槍桿的位置生成子彈。
	bullet.GetCompoonent<Rigibody>().velocity = bullet.transform.forward*10;//讓子彈的速度10m/s
	Destroy(bullet,2.0f);//2秒後銷燬
	NetWorkServer.Spawn(bullet);//在所有客戶端生成該物體
}
override void OnStartLocalPlayer()//用override重寫方法
{
	GetComponent<Render>().material.color=Color.red;
}

Player預置物體需要新增,NetworkTransform元件,同步位移。子彈需要同步剛體。


3.給Player新增血量和血條

新增UI->slider,做血條,去掉handle,將值Slider.value改為1,background改為紅色,fill改為綠色,用作滿血狀態。

using UnityEngine.Networking;
public class Health:NetworkBeHaviour{
	public const maxhealth=100;
	[SyncVar (hook="onChangehealth")]//新增特性,同步變數,利用hook屬性,當currenthealth值發生變化時,執行onChangehealth
	public int currunthealth = maxhealth;
    	public Slider healthslider;
    	public bool destrotondeth=false;
   	 // Use this for initialization
   	 public void takedamage(int damage)
    	{
    	    if (isServer == false) return;
    	    if (currunthealth <= 0)
       	 {
     	       if (destrotondeth)//敵人為真,如果為真,則銷燬物體,返回
        	   {
          	      Destroy(gameObject);
        	        return;
         	   }
        	    currunthealth = 100;
            Debug.Log("Death");
            Rpcrebirth();
        }
        
        currunthealth -= damage;


    }
    void onChangehealth(int health)
    {
        healthslider.value = (float)health / maxhealth;//控制血條
    }
    [ClientRpc]//在所有客戶端呼叫,方法名字用Rpc做字首
    void Rpcrebirth()
    {
        if (isLocalPlayer == false) return;//如果不是本地的角色,ruturn
        transform.position = Vector3.zero;
    }
}
}


相關推薦

Unity3d 區域網遊戲DEMO學習

今天看了SIKI老師的區域網多人聯機小遊戲,記錄下: 首先新建GameObject,新增NetworkManager元件和NetworkManagerHUD元件。 1.NetworkManager:Spawn Info->PlayerPrefab可放置prefab,在

java:打字母遊戲demo

在一個300*400的窗體上,有隨機產生的字母向下落。在鍵盤上敲字母,如果對了就消掉,初始成績為1000分,每敲對一個字母加10分,如果字母落到螢幕下方,或者敲錯,扣100分。 import java.awt.Color; import java.awt.Graphics; import j

html5遊戲開發-彈幕+仿雷電遊戲demo

本遊戲使用的是html5的canvas,運行遊戲需要瀏覽器支援html5。本篇文章詳細講解如何用html5來開發一款射擊遊戲,雷電可以說是射擊遊戲中的經典,下面就來模仿一下。先看一下游戲截圖演示地址遊戲開發,需要用到開源引擎:lufylegend.jslufylegend.j

phaser遊戲框架學習(一)

get github set 垂直 文檔 llb button pan esc 這兩天由於項目的需要,所以簡單學了一下phaser框架。 官網:http://phaser.io/ 還有一個phaser小站,是中文的網站,但是內容不如英文文檔全,大家也可以去看這個網站,需要查

phaser遊戲框架學習(二)

使用 ren col ret rank 否則 數據 技術分享 string     今天繼續學習phaser.js。上周寫的學習教程主要內容是創建遊戲場景,遊戲中的顯示對象,按鈕對象的使用以及如何在不同屏幕大小中完美適配。這篇博客以介紹遊戲榜單的渲染更新為主。     代碼

基於java製作一個飛機遊戲學習心得)

emmm,第一篇部落格 用了這麼久的csdn,都是在觀摩大佬們發帖,一隻小萌新瑟瑟發抖,不敢說話,甚 至連程式碼也不能完全讀懂。假期在b站自學(可以說是複習)了java課程,尚學堂的 2018版。連結如下:https://www.bilibili.com

Unity3d學習之路-簡單打飛碟遊戲

簡單打飛碟小遊戲 簡單打飛碟小遊戲 遊戲規則與遊戲要求 遊戲UML類圖 遊戲實現過程 動作部分

[知了堂學習筆記]_JS遊戲之打飛機(3)-飛機之間的互相撞擊,boss的出現,以及控制boss死亡

時間 i++ score console function sss 間隔 app tint 我的小飛機和敵軍小飛機撞擊的效果的實現: 1 /** 2 * 定義我的飛機與敵機碰撞的方法: 3 */ 4 function destoryMyPlane(){ 5

【python學習】使用python寫一個2048遊戲

ast stc 遊戲 多少 wan nbsp 小遊戲 效果 參考 個人博客:jerwang.cn 沒有參考其他代碼,效果圖: 話不多少,源代碼: https://github.com/jerustc/Python/blob/master/2048.py【python學

學習筆記-甲魚Python3學習第二講:用Python設計第一個遊戲

拼接 ilove lov love tab fish ins 小甲魚 cti 測試題: 什麽是BIF?built-in function,是python內置函數的意思,python內置了非常多的函數,方便程序員直接調用,快速編寫腳本程序 用課堂上小甲魚教的方法數一數

學習筆記-甲魚Python3學習第四講:改進我們的遊戲

import lazy 打印 變量 lua while語句 表達式 val 測試題 測試題0.請問以下代碼會打印多少次“我愛魚C”?while 'C': print('我愛魚C')當while語句中條件為真的時候,會無限循環下去。所以“

unity3d入門 Demo 學習記錄

axis back named local cto 目錄 enter ext player   閑來學習一下 unity3d 的Demo,記錄如下。 官方 Demo,名字為 Roll-A-Ball,如圖      場景比較簡單,包含地面、玩家精靈、主攝像機、墻壁

python學習第一週 猜數字遊戲

資源下載:點我下載 說明點: num.isdigit() #判斷使用者輸入的內容是否是數字 random.randint(0-100) #從0-100中獲取一個隨機數 int(num) #將獲取的字串num轉為int型別 #!/usr/bin/python3 #-*- co

Python學習之easygui實現簡單遊戲

import random, easyguisecret = random.randint(1, 99)guess = 0tries = 0easygui.msgbox("""Hi! I'm the Dread Pirate Roberts, and I have a secret!It is a numbe

2019版Unity3d遊戲開發學習指南

如今遊戲越來越火熱,讓人覺得好玩的同時,也不禁想自己動手做遊戲開發,那麼如何做遊戲開發,做遊戲開發又需要哪些技術呢?Unity3d遊戲開發入門難不難?2019版Unity3d遊戲開發學習指南,你值得擁有。遊戲開發需要懂幾種語言?基礎語言C/C++,這個是必選項。要提高效率,就還得會點組合語言。一些東西需要重複

微信遊戲 - 開發工具安裝 - 官方 Demo 執行

安裝開發工具      有了《微信小遊戲 - 理論介紹 - 賬號註冊 - 開發前準備》小程式帳號之後,需要一個開發工具來進行開發小程式/遊戲。前往 開發者工具下載頁面 ,根據自己的作業系統下載對應的安裝包進行安裝。有關開發者工具更詳細的介紹可以檢

Unity3d 遊戲從入門到???

一、下載unity3d 2018b3 win http://beta.unity3d.com/download/77f6238a7ced/Windows64EditorInstaller/UnitySetup64.exe?_ga=2.79047250.718293475.1544066313-293431

python遊戲學習(一) 猜字謎

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

XSS遊戲學習筆記(level 1-10)

XSS小遊戲 level 1 右鍵檢視頁面原始碼 <script> window.alert = function() { confirm("完成的不錯!"); window.location.href="level2.php?keyword

十一課堂|通過遊戲學習Ethereum DApps程式設計(1)

這篇文章,是通過製作一款可愛的遊戲(DAPP,也可以稱做智慧合約),從而學習Solidity語言。和ETH網路的一些基礎知識。 全程線上程式設計,無需搭建複雜的環境,只需要有任何其他語言的程式設計經驗,即可馬上學習。 這篇文章是一篇關於製作遊戲的總結。 1