您的位置:首页 > 健康 > 美食 > 香港宣布入境最新消息_用iis制作简单网站_seo网站推广助理_网络策划

香港宣布入境最新消息_用iis制作简单网站_seo网站推广助理_网络策划

2025/1/9 2:00:19 来源:https://blog.csdn.net/qq_39574690/article/details/144778754  浏览:    关键词:香港宣布入境最新消息_用iis制作简单网站_seo网站推广助理_网络策划
香港宣布入境最新消息_用iis制作简单网站_seo网站推广助理_网络策划

组件继承于IBufferElementData,可以让一个实体拥有多个相同的组件。

using Unity.Entities;public struct MyBuffComponentData : IBufferElementData
{public int num;
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Unity.Entities;
public class BuffComponentConvert : MonoBehaviour, IConvertGameObjectToEntity
{public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem){DynamicBuffer<MyBuffComponentData> bufferList = dstManager.AddBuffer<MyBuffComponentData>(entity);bufferList.Add(new MyBuffComponentData() { num = 1 });bufferList.Add(new MyBuffComponentData() { num = 2 });}
}

使用AddBuffer<组件类>(entity)添加缓存区组件,返回的是一个动态缓存区对象<组件类> 
然后逐个创建和添加到动态缓存区对象里去就完成了对实体添加多个相同组件。

继承于Monobeahviour.cs脚本直接Start方法执行如下代码:

正常通过query的方式查询获取组件的实体数组,我们只有1个所以直接取array[0]实体对象,
使用EntityManager对象GetBuffer<组件类>(array[0])获取动态缓存区对象,它是一个列表,可以分别对它进行索引获取值输出,插入,遍历等操作。

//(7)缓存区组件
EntityManager entityManager = World.DefaultGameObjectInjectionWorld.EntityManager;
EntityQuery query = entityManager.CreateEntityQuery(typeof(MyBuffComponentData));
NativeArray<Entity> array = query.ToEntityArray(Allocator.TempJob);
DynamicBuffer<MyBuffComponentData> bufferList = entityManager.GetBuffer<MyBuffComponentData>(array[0]);
Debug.Log(bufferList[0].num);//末尾插入        
bufferList.Insert(bufferList.Length, new MyBuffComponentData() { num = 3 });
Debug.Log(bufferList[2].num);//首部插入
bufferList.Insert(0, new MyBuffComponentData() { num = 4 });//遍历组件
foreach (var v in bufferList)
{Debug.Log(v.num);
}//销毁查询对象和数组        
query.Dispose();
array.Dispose();

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com