EntityPrefabRoot CreatePrefab(EntityRef entityRef, EntityPrefab prefab, Transform2D *transform) { var asset = UnityDB.FindAsset <EntityPrefabAsset>(prefab.Id); if (asset) { EntityPrefabRoot instance; instance = transform == null?Instantiate(asset.Prefab) : Instantiate(asset.Prefab, transform->Position.ToUnityVector2(), transform->Rotation.ToUnityQuaternion()); instance.AssetGuid = prefab.Guid; instance.EntityRef = entityRef; if (transform != null) { instance.transform.position = transform->Position.ToUnityVector3(); instance.transform.rotation = transform->Rotation.ToUnityQuaternion(); } // add to lookup _activePrefabs.Add(entityRef, instance); // return instance return(instance); } return(null); }
private int _GetOffsetOfTransform2D_Scale() { var tempObj = new Transform2D(); Transform2D *ptr = &tempObj; var filedPtr = &(ptr->Scale); return((int)((long)filedPtr - (long)ptr)); }