작은 문제를 해결하고 사람들의 의견에 감사드립니다.
저는 C++ 파티클 시뮬레이션 라이브러리를위한 Unity 용 C# 플러그인을 만들고 있습니다. 최종 사용자가 데이터에 쉽게 액세스 할 수 있도록 시스템의 모든 입자를 나타내는 방법을 원합니다. 현재는 각 입자는 .. 그래서 같은 구조체에 의해C# 유연한 데이터 구조를 찾고 있습니다.
public struct Particle
{
public Vector3 Position;
public Color _Color;
public float Age;
public float Weight;
public Vector3 Velocity;
public int UserData
}
내가 함께 가지고있는 문제를 표현이 있지만 대부분의 경우는 시뮬레이션에서 구조체에서 사용할 수있는 정보를 모두 검색 귀찮게하지 않는다는 것입니다 . 예를 들어 성능 향상을 위해 각 프레임의 위치와 색상 정보 만 검색 할 수 있습니다. 이 경우 내 구조체는 초기화되지 않은 필드가 많이있을 것이고, 필요 이상으로 많은 메모리를 사용하게 될 것입니다. (1000 비트는 btw가됩니다) 필드의 조합이 다른 상황에서 사용될 수 있으므로 클래스 hieratchy를 사용할 수 없습니다. 내가 생각할 않았다
한 가지 방법은이 ..
public struct Particle
{
public Dictionary<string,object> Data;
}
들을 이런 식으로 뭔가를 보이는 만들기 ..
Particle parttest = new Particle{Data = new Dictionary<string,object>()};
parttest.Data.Add("Position",(object)Vector3.one);
parttest.Data.Add("Weight",(object)1.8745f);
그들을 읽을 때 해당 클래스에 다시 캐스팅. 그래서 입자, 색상, 무게 및 위치 데이터가 포함 된 입자 만 가질 수 있습니다. 당신은 어떻게 생각하니?
적어도 유형 클래스로 만듭니다. –
클래스, 하위 클래스, 인터페이스 등을 사용하여 "구조"를 더 작은 세그먼트로 나눕니다. –
실제로 메모리가 부족합니까 아니면 조기에 최적화하고 있습니까? 권투는 두 번째 접근 방식에 문제가 될 것이라고 말하고 싶습니다. – juharr