【Dots之008】TransformUsageFlags基础知识

一、基础介绍

在Baker中进行GetEntity对象的时候,需要填入TransformUsageFlags类型的参数;针对不同类型的参数,看看GameObject所转换后的IComponentData有什么差异;

演示代码

public class CubeAuthoring : MonoBehaviour
{
    public TransformUsageFlags transformUsageFlags; 
    private void OnEnable()
    {
    } 
    internal class CubeAuthoringBaker : Baker<CubeAuthoring>
    {
        public override void Bake(CubeAuthoring authoring)
        {
             var entity = GetEntity(authoring.transformUsageFlags);
        }
    }
}

二、TransformUsageFlags

1、TransformUsageFlags.None
在这里插入图片描述
表示转换后的Entity不需要把Transform的组件转换为相关的Components;
转换后只是一个简单的Entity;

2、TransformUsageFlags.Dynamic
在这里插入图片描述
该枚举类型就是需要转换必要的Transform组件;在这里必要的就是指LocalToWorld,LocalTransform,从上面的截图中可以看出,相对于None,这里的Dyanmic明显的新增了两个组件类型;
默认==GetEntity()==的参数就是Dynamic类型;

3、TransformUsageFlags.WorldSpace
在这里插入图片描述
该类型表示转换后的Entity是没有父节点的,也就是直接按照世界空间来处理的;无论改节点是否有父节点,通过WorldSpace转换后都没有父节点;自己就是根节点;
可以看下面的效果:没有父节点请添加图片描述
如果把WorldSpace 修改为Dynamic就可以看到它有父节点了:
请添加图片描述
所以,WorldSpace无论是否有父节点,转换后都不会有父节点的;

4、TransformUsageFlags.NonUniformScale
在这里插入图片描述
该类型表示需要转换Transform的相关组件LocalToWorld和不同比例缩放组件PostTransformMatrix;从上面的截图中可以看到添加的效果;

5、TransformUsageFlags.Renderable
在这里插入图片描述
改类型需要转换Transform的必要组件LocalToWorld组件用于渲染;但在运行的时候会移除该组件;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值