저는 이것을 C #으로 코딩하고 있습니다. 다른 점이 포함 된 xml 파일이 있습니다.
xml 파일에는 세 가지 부분이 있습니다. 첫 번째 부분은 정점을 포함하고 두 번째 부분은 법선을 포함하고 마지막 부분은 인덱스를 포함합니다.
xml 파일을 구문 분석하고 해당 값을 저장할 수있는 방법을 알고 싶었습니다. 내 문제는 그것을 Vector3 유형으로 변환하는 것입니다.
파일은 다음과 같습니다.
93.74445056915283,-1.859979498507132,2.36335901389315,
93.74445056915283,-1.939160544096572,2.368864585972887,93.74445056915283,
-1.781553864479065,3.202673300504684,93.74445056915283,-1.781567934571608,
2.36155147915304,93.74445056915283,-0.9234275662899016,3.202673300504684,
93.74445056915283,-1.623975274812637,2.368862884104112,93.74445056915283,
-1.703156483525081,2.363355632934579,93.74445056915283,-1.544259938449322,
귀하의 예는 쉼표로 구분 된 십진수처럼 보입니다. 또한 Unity의 Vector3를 참조한다고 가정합니다.
이 샘플은 Vector3 목록을 반환합니다.
var inputString = "93.74445056915283,-1.859979498507132,2.36335901389315, 93.74445056915283,-1.939160544096572,2.368864585972887, 93.74445056915283,-1.781553864479065,3.202673300504684, 93.74445056915283,-1.781567934571608,2.36155147915304, 93.74445056915283,-0.9234275662899016,3.202673300504684, 93.74445056915283,-1.623975274812637,2.368862884104112, 93.74445056915283,-1.703156483525081,2.363355632934579, 93.74445056915283,-1.544259938449322,2.378187850255953";
var coordinates = inputString.Split(',').Select(n => float.Parse(n, CultureInfo.InvariantCulture.NumberFormat)).ToList();
var myVectors = new List<Vector3>();
for(var i=0;i<coordinates.Count;i+=3)
{
var myVector = new Vector3(coordinates[i], coordinates[i+1], coordinates[i+2]);
myVectors.Add(myVector);
}
이 코드를 머리에서 작성하고 있으므로 컴파일 할 수 없습니다. 또한 모든 숫자가 부동으로 파싱 될 수 있다고 가정합니다 (특수 문자가없고 로케일의 소수점은 점입니다 .
). 또한 입력 번호의 정확한 수를 가정하고 있습니다. Vector3는 생성자에 3 개의 숫자가 필요하기 때문에 3으로 나눌 수있는 개수가 있어야합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다