1. 程式人生 > >Unity中游戲重新載入玩家位置不變的方法

Unity中游戲重新載入玩家位置不變的方法

在玩遊戲時,有時候會遇見需要儲存玩家位置,這種遊戲在做遊戲和玩遊戲時還是很常見的,那麼我們是如何來儲存玩家的位置,以做到讓玩家下次載入時不會受到位置的丟失。下面是我在遊戲中的解決方法。

1.先看下我做的簡單測試環境。


2.上面有兩個按鈕,一個按鈕是用來儲存玩家的位置,另外的一個按鈕是用來載入儲存的位置。

3.處理save按鈕事件和Load按鈕事件,完成寫Json和讀Json。

using UnityEngine;
using System.Collections;
using LitJson;
using System.IO;


public class JsonScript : MonoBehaviour
{
    //建一個Position類
    public class Position
    {
        public double PositionX { get; set; }
        public double PositionY { get; set; }
        public double PositionZ { get; set; }
    }
    //當玩家點選儲存按鈕時
    public void SaveClick()
    {
       Position position = new Position();
        position.PositionX = transform.position.x;
        position.PositionY = transform.position.y;
        position.PositionZ = transform.position.z;
        JsonData posData = JsonMapper.ToJson(position);
        string path = Application.dataPath + "/JsonPos.txt";
        StreamWriter streamWriter = new StreamWriter(path);
        streamWriter.Write(posData);
        streamWriter.Close();
    }


    //當玩家點選載入按鈕
    public void LoadClick()
    {
        string path = Application.dataPath + "/JsonPos.txt";
        StreamReader streamReader = new StreamReader(path);
        string pos = streamReader.ReadLine();
        Position Pos = JsonMapper.ToObject<Position>(pos);
        transform.position = new Vector3((float)Pos.PositionX,(float)Pos.PositionY,(float)Pos.PositionZ);
        streamReader.Close();
    }
}

相關推薦

Unity中游重新載入玩家位置方法

在玩遊戲時,有時候會遇見需要儲存玩家位置,這種遊戲在做遊戲和玩遊戲時還是很常見的,那麼我們是如何來儲存玩家的位置,以做到讓玩家下次載入時不會受到位置的丟失。下面是我在遊戲中的解決方法。 1.先看下我做的簡單測試環境。 2.上面有兩個按鈕,一個按鈕是用來儲存玩家的位置,另外

網頁重新整理或者重新載入後滾動條的位置

<script type="text/javascript">  window.onbeforeunload = function(){      var scrollPos;          if (typeof window.pageYOffset != 

Unity中游的聲音管理

從來沒寫過部落格,作為一名菜鳥也不知道寫些什麼。特地偷同事點料/ using UnityEngine; using System.Collections; using System.Collections.Generic; /// <summary> //

輸入一個整數陣列,實現一個函式來調整該陣列中數字的順序,使得所有的奇數位於陣列的前半部分, 所有的偶數位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置

/** * * 輸入一個整數陣列,實現一個函式來調整該陣列中數字的順序,使得所有的奇數位於陣列的前半部分, * 所有的偶數位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。 * * */ public class Solution { public stati

把一個字串的大寫字母放到字串的後面,各個字元的相對位置,且能申請額外的空間。

import java.util.Scanner; public class Yiwei {     public static void main(String[] args) {        &

android ListView資料變動後保持螢幕位置(類似QQ對話列表)

          在網上找的所謂三種方法都不靠譜,比如在onScrollStateChanged事件中用lst_threads.getScaleX()獲取最後位置,不知道為何我除錯時在if (scrollState == OnScrollListener.SCROLL_S

頁面重新整理或者回發後DIV的滾動條位置

  當把資料放在div裡面,然後給div設定Scroll顯示,在頁面重新整理後或者是處理了某個按鈕的事件,這個時候div的滾動軸就會又回到起始位置,但想把滾動條記錄到重新整理前的位置! 經過思考,以及網上查詢資訊,得到解決辦法: Js部分: <script type=

關於cocos tableView的資料重新整理後位置

有時候tableView重新整理,資料變了,新的tableView高度可能變了,如果我們此時下滑了一定距離,重新整理資料後tableView回到頂部了,想回到原來位置怎麼辦呢? 首先知道listView是繼承scrollView的,創建出tableView之後,可以通過ge

把一個字串中的大寫字母放到後面,小寫字母放到前面,並且相對位置

/*°ÑÒ»¸ö×Ö·û´®µÄ´óд×Öĸ·Åµ½×Ö·û´®µÄºóÃ棬¸÷¸ö×Ö·ûµÄÏà¶ÔλÖò»±ä  *  */     #include <stdio.h> #include <string.h>   int ma

[面試演算法]把一個字串的大寫字母放到字串的後面,各個字元的相對位置能申請額外的空間。

//把一個字串的大寫字母放到字串的後面,各個字元的相對位置不變,不能申請額外的空間。 void MoveSupperToEndWithOrginOrder( char* szSrc , int nS

劍指offer題目描述 輸入一個整數陣列,實現一個函式來調整該陣列中數字的順序,使得所有的奇數位於陣列的前半部分,所有的偶數位於位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變

牛客網劍指offer線上程式設計: 方法一:利用兩個指標,實現了是陣列奇數在前偶數在後,但通過不了測試用例,因為改變了奇數和奇數,偶數和偶數之間的相對位置 class Solution { public:     void reOrderArray(vector<in

div+css如何讓頁面隨著視窗的變化內容位置

<span style="font-size:24px;color:#000000;">有時候層div內元素會隨著瀏覽器的縮放大小改變,內容位置會上下左右變化,其實是因為我們的邊距設定問題。為了不讓層div內容隨著瀏覽器縮放而變化,我們應該設定最外層div的margin,比如左邊距margin-

調整陣列順序,使得奇數在前偶數在後,分別保證奇數和偶數之間的相對位置

題目:輸入一個整形陣列,將陣列重新排序,使得所有奇數在前偶數在後,並使奇數之間和偶數之間的相對位置爆出不變。 思想:從陣列開頭開始遍歷所有陣列。當碰到偶數時,將偶數打包,即記錄到目前為止偶數的個數,把這些偶數看成一個整體;當碰到奇數時,將這個奇數與前面的偶數整體對調位置

微信中蘋果h5頁面用window.history.go(-1)返回上一頁頁面重新載入/重新整理

微信中h5頁面用window.history.go(-1)返回上一頁頁面不會重新載入問題 問題描述:     在實際開發中遇到這樣一個問題,業務需求涉及到返回上一頁問題,第一時間想到了window.history.go(-1)方法,這樣做本身沒有任何問題,但是在微信中,安卓手機還好返回上一頁

如何在重啟 JVM 的情況下重新載入證書檔案?

某種情況下需要動態下載證書檔案後使用 SSL 訪問某服務,但由於 JVM 使用預設的證書訪問新服務,該證書在 JVM 啟動的時候載入,那時還沒有新服務的證書,所以會報 ValidatorException,詳情: 16:44:27,338 ERROR [Htt

UEditor重新載入的問題

頁面中有一個下拉框,根據這個下拉框選中的值來動態載入不同的UEditor。 根據《JavaScript DOM 程式設計藝術》這本書裡的指示,我遵循了“預留退路”的原則,也就是說不能完全依賴於指令碼來實現重要功能,因為萬一使用者的瀏覽器不支援指令碼中的某些功能

ui-route子路由切換重複點選重新載入問題

一個不得不說的專案之坑。先描述問題,用angular框架做的專案,路由用的ui-router。奇怪的是進入一個路由之後,再重複點選當前路由對應選單,這個路由對應的html、js並不會重新載入,連快取都不取,是壓根兒沒反應。angular也用了好久了,說實話這個問題一直沒遇到

(仿錨點) 實現 頁面前進後退,重新載入 滾動條停留在原來的位置

處理機制是 cookie 和 onbeforeunload()方法的呼叫 window.onbeforeunload = function() { var scrollPos; if (typeof window.pageYOffset !

Android ViewPager的FragmentPagerAdapter中Fragment重新載入資料,並且使用的是其他快取的Framgnet的問題

問題描述: 場景:幾個相同的頁面,要左右切換,比如:天氣3的首頁 ViewPager使用FragmentPagerAdapter,新新增進adapter中的資料沒有問題,而刪除資料減少資料之後,Fragment的資料內容沒有對號入座,沒有變化,而內容顯示的是其他已經刪除的F

Fragment切換重新重新載入介面

http://blog.csdn.net/u012255016/article/details/51333896 (轉) /**       * 設定預設的fragment,即//第一次載入介面;       */     privatevoid setDefaul