GameFramework学习之加载实体

这是通过读表的方式来读取模型从而实例化,加载实体
GF框架中给我们封装好了Entity的方法
我们这里需要调用即可
首先仿照上面的方法我们写一个创建人物的方法在
在这里插入图片描述这个脚本中
在这里插入图片描述
实体的具体信息在这个表中 AssetName是存的预制体的名字
在这里插入图片描述
还有每个角色所对应的具体信息同样存在表中
在这里插入图片描述
创建一个玩家角色的信息脚本
在这里插入图片描述
用于处理逻辑的类,目的是为了确定模型实体加载出来的位置,大小等信息

在这里插入图片描述
然后开始写创建脚本的逻辑,因为拿到了实体的数据,这个数据来自于PlayerRoleData这里可以F12进入导航
在这里插入图片描述
然后这里PlayerRoleData是由
CreateRoleForm中的
在这里插入图片描述
这里赋值的这个编号就叫做实体ID

在这里插入图片描述
CreateRoleForm脚本中 ----------- 让RoleID变成实体ID
在这里插入图片描述
这里写了一个方法可以在右边显示出来当前展示的角色和他的实体ID
在这里插入图片描述
在这里插入图片描述
CreateRoleForm还有一个方法就是随机名字
在这里插入图片描述
同样的还是读表,从DRFirstName表中读取名字
在这里插入图片描述
当我们每次要新建一个实体的时候这都是一个组这个OBJ下的这里
在这里插入图片描述
我们要更改他的组的数目
在这里我们新建一个PlayerRole组,这些参数都是框架做好的,分别是实例化间隔,实例化容量 实例化时间 还有优先级,

在这里插入图片描述

下面是本文中提到的几个脚本

using GameFramework.DataTable;
using System;
using UnityEngine;

namespace StarForce

{
   
    /// <summary>
    /// 角色的具体信息表
    /// </summary>
    public class PlayerRoleData : EntityData
    {
   
        [SerializeField]
        private string m_Name;
        [SerializeField]
        private string m_Describe;
        [SerializeField]
        private Vector3 m_PositionZ;
        [SerializeField]
        private Vector3 m_RotationY;
        /// <summary>
        /// 
        /// </summary>
        /// <param name="entityId">实体id</param>
        /// <param name="typeId">资源类型id</param>
        public PlayerRoleData(int entityId, int typeId)
            : base(entityId, typeId)
        {
   
            IDataTable<DRPlayerRole> dtPlayerRoles = GameEntry.DataTable.GetDataTable<DRPlayerRole>();
            DRPlayerRole drPlayerRole = dtPlayerRoles.GetDataRow(TypeId);
            if (drPlayerRole == null)
            {
   
                return;
            }

            m_Name = drPlayerRole.Name;
            m_Describe =  drPlayerRole.Describe;
            m_PositionZ = new Vector3(0, drPlayerRole.PositionY,0);
            base.Position = m_PositionZ;
            m_RotationY = new Vector3(0, drPlayerRole.RotationY, 0);
            base.Rotation =Quaternion.Euler(m_RotationY);
        }
    }

}

using GameFramework;
using GameFramework.DataTable;
using System;
using UnityGameFramework.Runtime;

namespace StarForce
{
   
    public static class 
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值