ich versuche mich gerade daran, die Absoluten Rotations Winkel von einem Entity zu Speicher und dann wider zu restaurieren.
Dabei versage ich völlig . Mir scheint da etwas wesentliches nicht bekannt zu sein.
ich speicher die daten in einer Text datei.
Code: Alles auswählen
WriteStringN(0, "pos "+StrF(EntityX(ml() \EntityHandler,#PB_Absolute))+" "+StrF(EntityY(ml() \EntityHandler,#PB_Absolute)) +" "+StrF(EntityZ(ml() \EntityHandler,#PB_Absolute)) +" ")
WriteStringN(0, "rot "+StrF(EntityPitch(ml()\EntityHandler,#PB_Absolute|#PB_Engine3D_Adjusted))+" "+StrF(EntityYaw(ml()\EntityHandler,#PB_Absolute|#PB_Engine3D_Adjusted)) +" +StrF(EntityRoll(ml()\EntityHandler,#PB_Absolute|#PB_Engine3D_Adjusted)) +" ")
Code: Alles auswählen
If FindString(Daten,"pos ")
p1 = FindString(Daten," ",1)
p2 = FindString(Daten," ",p1 + 1)
p3 = FindString(Daten," ",p2 + 1)
ML()\PosX = ValF(Mid(Daten,p1+1,p2-p1))
ML()\PosY = ValF(Mid(Daten,p2+1,p3-p2))
ML()\PosZ = ValF(Mid(Daten,p3+1,Len(Daten)-p3))
Debug StrF(ML()\PosX)+"/"+StrF(ML()\PosY)+"/"+StrF(ML()\PosZ)
daten = ReadString(0)
If FindString(Daten,"rot ")
p1 = FindString(Daten," ",1)
p2 = FindString(Daten," ",p1 + 1)
p3 = FindString(Daten," ",p2 + 1)
ML()\RotX = ValF(Mid(Daten,p1+1,p2-p1))
ML()\RotY = ValF(Mid(Daten,p2+1,p3-p2))
ML()\RotZ = ValF(Mid(Daten,p3+1,Len(Daten)-p3))
Debug StrF(ML()\RotX)+"/"+StrF(ML()\RotY)+"/"+StrF(ML()\RotZ)
Code: Alles auswählen
mesh = LoadMesh(#PB_Any,GetCurrentDirectory()+"Data\mesh\"+ML()\BlockName+".mesh")
If mesh = 0 : Debug "Konnte mesh nicht laden" : Debug GetCurrentDirectory()+"Data\mesh\"+ML()\BlockName+".mesh" : EndIf
result = CreateEntity(#PB_Any,MeshID(mesh),MaterialID(_material3),ML()\PosX,ML()\PosY,ML()\PosZ, #SelectMasik5)
RotateEntity(result,ML()\RotX,ML()\RotY,ML()\RotZ,#PB_Absolute)
If result = 0 : Debug "Konnte Entity nicht erzeugen" : EndIf
Gruss TFT