物体坐标值分开显示
//下面代码表示物体移动到局部坐标为(2,0.5,1)处,且能实时显示每个轴的变化
public Text textComponent;
public Text textComponentRX;
public Vector3 wei;
public float weiRX;
void Update()
{
transform.localPosition = Vector3.MoveTowards(transform.localPosition, new Vector3(2f, 0.5f, 1f), 1f * Time.deltaTime);
wei.x = transform.localPosition.x;
weiRX = transform.localRotation.x;
textComponent.text = "X轴坐标:" + wei.x.ToString("F3"); //Fx 显示 小数点后x位
textComponentRX.text = "Rx: " + weiRX.ToString();
}
读/写.csv文件
.csv文件的生成
在Excel中另存为.csv格式的文件
读取.csv文件
.csv文件中有4列12行数据,其中第1行表示类型,第1列表示唯一标识的ID号,后面三列的数据表示物体的(x,y,z)坐标
using System.Collections.Generic;
using UnityEngine;
using System.IO;
using System.Text;
using UnityEngine.UIElements;
using System;
using UnityEditor;
public class Read_csv : MonoBehaviour
{
public Vector3[] SpilttargetPositions;
void Start()
{
// 定义CSV文件的路径
string filePath = "Assets/StreamingAssets/transformer_data.csv";
// 创建一个StreamReader对象来读取文件,并加上中文标识符
StreamReader reader = new StreamReader(filePath, Encoding.UTF8);
// 创建字典来存储数据
Dictionary<string, Vector3> data = new Dictionary<string, Vector3>();
//创建列表来存储ID
List<string> idorder = new List<string>();
//创建列表来存储坐标轴
List<Vector3> velist = new List<Vector3>();
//读取csv文件的第一行,即类别
string categoriesLine = reader.ReadLine();
while (!reader.EndOfStream)
{
// 逐行读取CSV文件
string line = reader.ReadLine();
//Debug.Log("line:" + line);
// 使用逗号分隔每个字段
string[] fields = line.Split(',');
// 将每个字段的数据转换为float类型,并存储到Vector3中
string id = fields[0];
float x = float.Parse(fields[1]);
float y = float.Parse(fields[2]);
float z = float.Parse(fields[3]);
Vector3 position1 = new Vector3(x, y, z);
data[id] = position1;
velist.Add(position1);
}
reader.Close();
//Debug.Log("asdasdasd1111" + velist[4]);
SpilttargetPositions = velist.ToArray();
}
//随便挂载到一个物体上,验证是否能运动,能则表示
//SpilttargetPositions = new Vector3[]
// { new Vector3(0f, 0f, -0.5f),
// new Vector3(3f, 0f, -0.3f) };
private void Update()
{
transform.localPosition = Vector3.MoveTowards(transform.localPosition, SpilttargetPositions[2], 1f * Time.deltaTime);
}
}