Ich verwende das Issue zum Erklären, wie man mit den neuen Materialen umgeht.
Der struct Hit enthält jetzt neben der MaterialId auch die Materialeigenschaften selbst (ein weiteres Struct StMaterial.
Neues Material erstellen:
Material im Projekt erstellen über Assets > Create > SphereTracing > Material
Der SphereTracingManager Komponente auf der Main Camera im Array St Materials das Material einem Element zuweisen (ggf. Größe des Arrays anpassen, Auswahl durch Klicken auf den kleinen Kreis neben Element).
Der Array Index ist die Material ID, die im Shader verwendet werden muss um das Material zu verwenden. Am besten #define MAT_NEW index in der WorldLogic.cginc dazu verwenden.
Um neue Materialeigenschaften hinzuzufügen:
Dem struct StMaterial in der StructDefinitions.cginc einen neuen member geben.
Dem struct StMaterialData in der StMaterial.cs ebenfalls den neuen member des gleichen Typs geben.
Die static int GetSize() Methode in der StMaterial.cs anpassen, so dass sie die richtige Größe des structs in Bytes zurückgibt, also die Größe des Typs des neuen members addieren.
Ich verwende das Issue zum Erklären, wie man mit den neuen Materialen umgeht. Der
struct Hit
enthält jetzt neben der MaterialId auch die Materialeigenschaften selbst (ein weiteres StructStMaterial
.Neues Material erstellen:
Assets > Create > SphereTracing > Material
St Materials
das Material einem Element zuweisen (ggf. Größe des Arrays anpassen, Auswahl durch Klicken auf den kleinen Kreis neben Element).#define MAT_NEW index
in der WorldLogic.cginc dazu verwenden.Um neue Materialeigenschaften hinzuzufügen:
struct StMaterial
in derStructDefinitions.cginc
einen neuen member geben.StMaterial.cs
ebenfalls den neuen member des gleichen Typs geben.static int GetSize()
Methode in derStMaterial.cs
anpassen, so dass sie die richtige Größe des structs in Bytes zurückgibt, also die Größe des Typs des neuen members addieren.