网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
01月26日漏签0天
unity3d吧 关注:116,894贴子:562,254
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 0回复贴,共1页
<<返回unity3d吧
>0< 加载中...

关于保存多个同样标签游戏物体位置的脚本,大家帮我看看

  • 只看楼主
  • 收藏

  • 回复
  • kingjack82113
  • Prefab
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#pragma strict
import System; import System.Xml;
import System.Xml.Serialization;
import System.IO;
import System.Text;
class DemoDatas2
{
var levelscount : int;
var money : int;
var name : String; /*在此处可以增加你需要的其它参数*/
var wutiid : int;
var x : float;
var y : float;
var z : float;
}
class UserDatas2
{
public var Player : DemoDatas = new DemoDatas();
function UserDatas() { }
}
private var _FileLocation : String;
private var _FileName : String = "SaveData.xml";
private var myData : UserDatas;
private var _data : String;
private var VPosition : Vector3;
function Awake()
{
_FileLocation=" E:/Program Files/Unity/kingjack/freway of titan'wa0.6/Assets/save/save01";
_FileLocation=Application.dataPath;
_FileLocation=Application.dataPath;
myData=new UserDatas();
}
//////////////////////////kingjack
//var Player :GameObject;
function Getwutijihe()
{
varPlayers:GameObject;
Players = GameObject.FindWithTag ("Player");
var count : int = 0;
var PlayerNumber : int = 0;//物体个数
for( var Player : GameObject in Players)
{
PlayerNumber++;
}
var Playermen : GameObject[] = new GameObject[PlayerNumber];
for( var Player : GameObject in Players)
{
Playermen[count] = Player;
count++;
myData.Player.x = Player.transform.position.x;
myData.Player.y = Player.transform.position.y;
myData.Player.z = Player.transform.position.z;
_data = SerializeObject(myData);
CreateXML();
Debug.Log("yes save!");
}
return Playermen;
}
/////////////////////////////////////////////
function OnGUI()
{
var Player : GameObject;
// ***************************************************
// Saving 玩家信息
// **************************************************
if (GUI.Button(Rect(10,80,100,20),"Save"))
{
Getwutijihe();
myData.Player.levelscount = 10; //关卡
myData.Player.money = 985; //钱数
myData.Player.name = "玩家名字";
myData.Player.x = Player.transform.position.x;
myData.Player.y = Player.transform.position.y;
myData.Player.z = Player.transform.position.z;
_data = SerializeObject(myData);
CreateXML();
}
// ***************************************************
// Loading 玩家信息
// **************************************************
var st : FileInfo = new FileInfo(_FileLocation+"/"+ _FileName);
GUI.enabled = st.Exists; //判断是否有保存的信息,确定是否可以load
if (GUI.Button(Rect(10,120,100,20),"Load")) {
LoadXML();
if(_data.ToString() != "")
{
myData = DeserializeObject(_data);
print("关卡:" + myData.Player.levelscount);
print("金钱:" + myData.Player.money);
print("玩家:" + myData.Player.name);
print("x:" + myData.Player.x);
print("y:" + myData.Player.y);
print("z:" + myData.Player.z);
VPosition=new Vector3(myData.Player.x,myData.Player.y,myData.Player.z);
Player.transform.position=VPosition;
}
}
}
function UTF8ByteArrayToString(characters : byte[] )
{
var encoding : UTF8Encoding = new UTF8Encoding();
var constructedString : String = encoding.GetString(characters);
return (constructedString);
}
function StringToUTF8ByteArray(pXmlString : String)
{
var encoding : UTF8Encoding = new UTF8Encoding();
var byteArray : byte[] = encoding.GetBytes(pXmlString);
return byteArray;
}
function SerializeObject(pObject : Object)
{
var XmlizedString : String = null;
var memoryStream : MemoryStream = new MemoryStream();
var xs : XmlSerializer = new XmlSerializer(typeof(UserDatas));
var xmlTextWriter : XmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8);
xs.Serialize(xmlTextWriter, pObject);
memoryStream = xmlTextWriter.BaseStream;
XmlizedString = UTF8ByteArrayToString(memoryStream.ToArray());
return XmlizedString;
}
function DeserializeObject(pXmlizedString : String)
{
var xs : XmlSerializer = new XmlSerializer(typeof(UserDatas));
var memoryStream : MemoryStream = new MemoryStream(StringToUTF8ByteArray(pXmlizedString));
var xmlTextWriter : XmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8);
return xs.Deserialize(memoryStream);
}
function CreateXML()
{
var writer : StreamWriter;
var t : FileInfo = new FileInfo(_FileLocation+"/"+ _FileName);
if(!t.Exists)
{
writer = t.CreateText();
}
else
{
t.Delete();
writer = t.CreateText();
}
writer.Write(_data);
writer.Close();
}
function LoadXML()
{
var r : StreamReader = File.OpenText(_FileLocation+"/"+ _FileName);
var _info : String = r.ReadToEnd();
r.Close();
_data=_info;
}
这个代码有点问题,另外不知道如何读取数组求解?
代码功能是实现将一个场景里所有带player标签的物体的位置信息保存成XML。


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 0回复贴,共1页
<<返回unity3d吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示