当前位置: 首页 > news >正文

unity实时保存对象的位姿,重新运行程序时用最后保存的数据给物体赋值

using UnityEngine;
using System.IO;
// using System.Xml.Serialization;
public class SaveCoordinates : MonoBehaviour
{public GameObject MainObject;//读取坐标private float x;private float y;private float z;private Quaternion quaternion;private void Start(){//D:\BUFFER\Unity\DLLProject01\Assets\Pluginsstring[] lines = File.ReadAllLines("Assets\\Plugins\\coordinates.txt");for (int i = 1; i < lines.Length; i++){string[] parts = lines[i].Split('=');string variable = parts[0].Trim();string value = parts[1].Trim();//print(variable + "===" + value);if (variable == "x"){x = float.Parse(value);}else if (variable == "y"){y = float.Parse(value);}else if (variable == "z"){z = float.Parse(value);}else if (variable == "quax"){quaternion.x = float.Parse(value);}else if (variable == "quay"){quaternion.y = float.Parse(value);}else if (variable == "quaz"){quaternion.z = float.Parse(value);}else if (variable == "quaw"){quaternion.w = float.Parse(value);}}MainObject.transform.position = new Vector3(x, y, z);MainObject.transform.rotation = quaternion;}void Update(){// 获取 MainObject 的位置坐标float quax = -MainObject.transform.localRotation.x;float quay = MainObject.transform.localRotation.y;float quaz = -MainObject.transform.localRotation.z;float quaw = MainObject.transform.localRotation.w;float x = MainObject.transform.position.x;float y = -MainObject.transform.position.y;float z = MainObject.transform.position.z;// 打开文件,以写入模式写入文本内容using (var file = System.IO.File.CreateText("Assets\\Plugins\\coordinates.txt")){// 将三个坐标值以空格分隔,并写入文件file.Write("[PositionRotation]" + "\n");file.Write("x=" + x + "\n");file.Write("y=" + y + "\n");file.Write("z=" + z + "\n");file.Write("quax=" + quax + "\n");file.Write("quay=" + quay + "\n");file.Write("quaz=" + quaz + "\n");file.Write("quaw=" + quaw + "\n");}}}

txt文件

[PositionRotation]
x=0
y=3.3
z=0.16
quax=0
quay=0
quaz=0
quaw=1
 

http://www.lryc.cn/news/247339.html

相关文章:

  • 【Java Spring】Spring MVC基础
  • MES系统的功能清单
  • docker 安装elasticsearch集群
  • Spring Boot 3 + Spring Security 6 最新版本修改 Json 登录后 RememberMe 功能问题失效的解决方案
  • Java核心知识点整理大全21-笔记
  • Redis深入理解-主从架构下内核数据结构、主从同步以及主节点选举
  • java中BigDecimal的介绍及使用(二)
  • NX二次开发UF_MTX3_identity 函数介绍
  • 解决Hadoop DataNode ‘Incompatible clusterIDs‘报错
  • 计算机毕业设计|基于SpringBoot+MyBatis框架的电脑商城的设计与实现(系统概述与环境搭建)
  • 神器!使用 patchworklib 库进行多图排版真棒啊
  • MySQL -DDL 及表类型
  • 主从同步机制
  • Leetcode算法系列| 3. 无重复字符的最长子串
  • Spring Cache(缓存框架)
  • android开发:安卓13Wifi和热点查看与设置功能
  • Java中的mysql——面试题+答案——第24期
  • 王者小游戏
  • using meta-SQL 使用元SQL
  • 函数式接口
  • 使用shell快速查看电脑曾经连接过的WiFi密码
  • 通过亚马逊云科技云存储服务探索云原生应用的威力
  • Boot工程快速启动【Linux】
  • 三 STM32F4使用Sys_Tick 实现微秒定时器和延时
  • 唯创知音WT2003H系列MP3录音语音芯片:高精度ADC与DAC,强大IO驱动能力成就音频卓越
  • 记录Windows下安装redis的过程
  • 7.5 Windows驱动开发:监控Register注册表回调
  • NC56 XML 报文校验出错一例
  • STM32 ADC转换器、串口输出
  • [MySQL--基础]函数、约束