1. 程式人生 > >自學Unity之做一個MOBA遊戲2——鏡頭移動

自學Unity之做一個MOBA遊戲2——鏡頭移動

Moba類的鏡頭移動邏輯是,你的滑鼠處在整個螢幕最右邊的時候,鏡頭就往右激動,其他方向同理。於是我就按照這樣一個邏輯給 Main Camera ,比如當滑鼠在螢幕最右邊的時候:

if (Input.mousePosition.x >= Screen.width)
        {
            transform.Translate(Vector3.right * speed * Time.deltaTime);
        }

但是發現並沒有用,鏡頭並不會移動。後來經過反覆測試發現,需要給定一個邊界的範圍,比如 滑鼠處於螢幕最右邊的5%的時候鏡頭向右移動。修改後成功的程式碼如下:

if (Input.mousePosition.x >= Screen.width * 0.95)
        {
            transform.Translate(Vector3.right * speed * Time.deltaTime);
        }

其他方向的也一樣,然後發現,鏡頭成功的動起來了。

但是我又發現一個問題,鏡頭向左移動向右移動的時候沒有問題。但是因為我的鏡頭是45度向下拍攝整個地圖的,如果鏡頭向前移動,就真的向前移動,快要栽倒地圖裡面去了。這應該是座標系的問題,預設移動是採用的自身的座標系,而我實際想要採用的是世界座標系,查了下API,發現改成這樣就可以了。

if (Input.mousePosition.y >= Screen.height * 0.95)
        {
            transform.Translate(Vector3.forward * speed * Time.deltaTime, Space.World);
        }


相關推薦

自學Unity一個MOBA遊戲2——鏡頭移動

Moba類的鏡頭移動邏輯是,你的滑鼠處在整個螢幕最右邊的時候,鏡頭就往右激動,其他方向同理。於是我就按照這樣一個邏輯給 Main Camera ,比如當滑鼠在螢幕最右邊的時候:if (Input.mousePosition.x >= Screen.width)

自學Unity一個MOBA遊戲4——小兵

小兵我是用的網上下載的一個模型,有攻擊、死亡、行走、停止的動畫,用Annimation控制。 其實小兵的行為邏輯很簡單,以天輝小兵為例,設定一個spawnPoint讓小兵30秒生成一次,預設自動尋路前往夜魘的基地。給他一個可以進入的sphere collidier和一個不可

怎麼一個MOBA遊戲(武器與技能)?

一、英雄與技能設計 是英雄的樂趣是什麼,怎麼用技能去體現這些樂趣 不是英雄的定位是什麼,怎麼分配技能凸現他的定位 二、核心思想 滿足射擊者 響應性 伺服器主導 三、UnityTech官方視訊《Ability System With

怎麼通過Unity和谷歌紙盒一個VR遊戲?(譯)

作者是用iPhone適配的,我是用的Android手機且由於SDK版本的關係所以會有些小細節不一樣。 遊戲工程地址:忍者飛鏢                                                                        

Angular2初學筆記 一個todolist

因為之前簡單學習過vue,它和angular2的概念很多都是一樣的,所以學angular2也覺得容易上手。 首先安裝angular-cli cnpm install -g angular-cli 安裝完成後開始建立自己的專案 ng new todolist cd todolis

自學演算法判斷一個二叉樹是否平衡/搜尋/完全二叉樹

話不多說,在面試中遇到過,一臉矇蔽,被虐出翔…以下所述,僅僅是手撕程式碼時候使用,若是需要線上程式設計,可以根據該思路編寫對應AC程式碼。 如何判斷一個二叉樹是否平衡?要解決這個問題,首先要知道什麼

Unity實戰篇:MOBA遊戲小地圖製作(二:細節完善)

1.場景新建一個Cube,命名為Ground,scale設定為200,0.01,200。 2.建立材質球,把準備好的地圖圖片(開一把MOBA遊戲~)拖進去,然後把材質球給Ground。 我們的地

【20171013】unity+cardboard一個VR眼鏡

一、搭建開發環境 1.下載unity: https://store.unity.com/cn免費版即可 2.下載Android SDK: http://tools.android-studio.org/index.php/sdk/ windows|exe版本 3.下載car

Step by Step,用JAVA一個FLAPPYBIRD遊戲(三)

遊戲介面的滾動背景 上一篇我們講了如何製作開始選單,開始選單比較簡單,就只涉及了一個Entity,接下來幾篇,我們要一步步實現遊戲介面,對應的gameState為GAME_STATE_PLAYING。 這一篇,我們先講滾動的背景是怎麼做到的。 Flappy

自學QT實現一個使用者資訊視窗

使用者資訊視窗如果用設計師介面來做當然是非常簡單了,但是為了鍛鍊自己的開發能力和對QT以及C++的深入理解,有必要用程式碼來進行操作。其實,程式碼比設計師介面更加靈活。看到程式碼多,不要害怕,其實程式碼中的大部分單詞只需要輸入開頭就可以自動補全的。 新建一個專案,基於對話方

pixhawk自學筆記建立一個應用程式(按官網)

當把環境搭建好,整個工程下載後,開啟src-->examples--->px4_simple_app。 當然了,也可以自己新增想實現的功能和任務。當寫好這些應用程式,還要考慮要把它註冊為NuttShell命令。為了使該應用程式進入韌體的編譯,將其新增到模組

使用PixiJS一個遊戲

區域 bom class 分享 超過 turn speed canvas html5 PixiJS PixiJS使用WebGL,是一個超快的HTML5 2D渲染引擎。作為一個Javascript的2D渲染器,Pixi.js的目標是提供一個快速的、輕量級而且是兼任所有設備的

使用Multiplayer Networking一個簡單的多人遊戲例子-2/3(Unity3D開發二十六)

7. 在網路中控制Player移動 上一篇中,玩家操作移動會同時控制同屏內的所有Player,且只有自己的螢幕生效。因為咱們還沒有同步Transform資訊。 下面我們通過UnityEngine.Networking元件來實現玩家控制各自Player

使用Multiplayer Networking一個簡單的多人遊戲例子-1/2

lap settings isl log atime round 窗口 bottom -m 原文地址: http://blog.csdn.net/cocos2der/article/details/51006463 本文主要講述了如何使用Multiplayer Networ

UnityC#——用單例實現一個遊戲內部的音效控制器

       Unity之C#--用單例實現一個遊戲內部的音效控制器         在遊戲開發中,音效是很重要的一環,沒有音效的遊戲就沒有靈魂,所以實現聲音控制是很有必要的,同時,音效可能還會因玩家的性別不同,

小白的OpenGL3.3自學路(2)OpenGL3.3開啟一個視窗

還記得上一篇那段測試程式碼嗎? 那段程式碼就是最簡單的應用glfw開啟一個視窗,程式碼如下: #include <glad/glad.h> #include <GLFW/glfw3.h> #include <iostrea

我的Unity 3D旅——第一人稱射擊遊戲(2)

三、主角 因為是第一人稱射擊遊戲,所以主角在視野中是不可見的,但我們依然需要為主角建立碰撞體並控制其移動。 1. 在選單欄選擇【GameObject】→【Create Empty】建立一個空的遊戲體,在Inspector視窗將它的Tag設為Player,這就是我們的主角。

Unity一個小球遊戲筆記

遊戲中的視角:public class FollowTarget : MonoBehaviour { public Transform playerTransfrom; private Vector3 offset; // Use this fo

一個遊戲的失足青年,轉行軟體開發的掙扎過程(2

相親脫單記 話說之前被父母迫切去相親,前兩次都失敗告終,其實那時我一是確實沒放在心上,每次都是應付了事;二是我有一個致命的心病,我在剛工作一年時體檢發現有乙肝。 回到我剛開始工作的第二年,公司是包一日三頓伙食,當時沒有996的概念,反正幹累了就回去睡覺。 因為公司有一半的是客服人員,是24小時線上,兩班倒。

Unity引擎入門——製作第一個2D遊戲2)角色移動與動畫

在上一節的內容裡,我們已經創建出了一個主角,也搭建了一個簡單的場景。 傳送門:https://www.cnblogs.com/zny0222/p/12653088.html 既然有了主角,要怎樣才能讓主角動起來呢? 這時候我們就需要寫一些簡單的程式碼,來控制我們人物的移動。 如圖所示,我們新建一個資料夾,用