查看: 1255|回复: 0
打印 上一主题 下一主题

保存物体的位置信息及布尔状态的小扩展

[复制链接]

5552

主题

2

听众

8万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
11

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2012-4-1 11:21:42 |只看该作者 |倒序浏览
有用的小代码,可以保存物体的位置信息及布尔状态!



Hi all, i present you my first plugin for unity3d. It serves for save position (Vector3), rotation (Quaternion) and booleans.

I hope it like you!

Script name : APlayerPrefs (C# Script)
using UnityEngine;
using System.Collections;
public class APlayerPrefs : MonoBehaviour
{
public static void SaveObjectPosition(string saveName,Vector3 value)
{
PlayerPrefs.SetFloat(saveName + "px",value.x);
PlayerPrefs.SetFloat(saveName + "py",value.y);
PlayerPrefs.SetFloat(saveName + "pz",value.z);
}
public static void SaveObjectRotation(string saveName,Quaternion value)
{
PlayerPrefs.SetFloat(saveName + "rx",value.x);
PlayerPrefs.SetFloat(saveName + "ry",value.y);
PlayerPrefs.SetFloat(saveName + "rz",value.z);
PlayerPrefs.SetFloat(saveName + "rw",value.w);
}
public static Vector3 LoadObjectPosition(string loadPosition)
{
float pX = PlayerPrefs.GetFloat(loadPosition + "px");
float pY = PlayerPrefs.GetFloat(loadPosition + "py");
float pZ = PlayerPrefs.GetFloat(loadPosition + "pz");
return new Vector3(pX,pY,pZ);
}
public static Quaternion LoadObjectRotation(string loadRotation)
{
float rX = PlayerPrefs.GetFloat(loadRotation + "rx");
float rY = PlayerPrefs.GetFloat(loadRotation + "ry");
float rZ = PlayerPrefs.GetFloat(loadRotation + "rz");
float rW = PlayerPrefs.GetFloat(loadRotation + "rw");
return new Quaternion(rX,rY,rZ,rW);
}
public static void SetBool(string saveBool,bool valueBool)
{
PlayerPrefs.SetInt(saveBool,valueBool?1:0);
}
public static bool GetBool(string loadBool)
{
return PlayerPrefs.GetInt(loadBool)==1?true:false;
}
}
======Example Script (JavaScript)
var example: boolean = true;
function Update ()
{
if(Input.GetKeyDown(KeyCode.A))
{
APlayerPrefs.SetBool("newbool",example);
}
if(Input.GetKeyDown(KeyCode.B))
{
print(APlayerPrefs.GetBool("newbool"));
}
if(Input.GetKeyDown(KeyCode.S))
{
APlayerPrefs.SaveObjectPosition("playerposition",transform.position);
APlayerPrefs.SaveObjectRotation("playerrotation",transform.rotation);
}
if(Input.GetKeyDown(KeyCode.L))
{
transform.position = APlayerPrefs.LoadObjectPosition("playerposition");
transform.rotation = APlayerPrefs.LoadObjectRotation("playerrotation");
}
}
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

关闭

站长推荐上一条 /1 下一条

手机版|纳金网 ( 闽ICP备08008928号

GMT+8, 2024-5-5 22:14 , Processed in 0.085180 second(s), 32 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部