diff options
Diffstat (limited to 'src/classes/transform.rs')
-rw-r--r-- | src/classes/transform.rs | 21 |
1 files changed, 6 insertions, 15 deletions
diff --git a/src/classes/transform.rs b/src/classes/transform.rs index d31a7d6..2ec515a 100644 --- a/src/classes/transform.rs +++ b/src/classes/transform.rs @@ -18,28 +18,19 @@ impl FromValue for Transform { fn from_value(v: Value) -> Result<Self> { let mut fields = v.as_class("Transform").unwrap(); Ok(Self { + father: fields.field("m_Father")?, + gameobject: fields.field("m_GameObject")?, + local_position: fields.field("m_LocalPosition")?, + local_rotation: fields.field("m_LocalRotation")?, + local_scale: fields.field("m_LocalScale")?, children: fields .remove("m_Children") .unwrap() - .as_class("vector") - .unwrap() - .remove("Array") - .unwrap() - .as_array() + .as_vector() .unwrap() .into_iter() .map(|e| PPtr::from_value(e).unwrap().cast()) .collect(), - father: fields - .remove("m_Father") - .unwrap() - .parse::<PPtr>() - .unwrap() - .cast(), - gameobject: fields.remove("m_GameObject").unwrap().parse().unwrap(), - local_position: fields.remove("m_LocalPosition").unwrap().parse().unwrap(), - local_rotation: fields.remove("m_LocalRotation").unwrap().parse().unwrap(), - local_scale: fields.remove("m_LocalScale").unwrap().parse().unwrap(), }) } } |