骑砍2霸主MOD开发(12)-游戏实例GameEntity

作者 : admin 本文共2101个字,预计阅读时间需要6分钟 发布时间: 2024-06-9 共3人阅读

一.GameEntity游戏实例

     <1.通用GameEntity,梯子,椅子,攻城云梯,战车等定义为GameEntity,一个GameEntity由若干GameEntityComponets组成,例如攻城云梯的轮子是一个独立Component,支架是一个独立Component,

    GameEntity = GameEntityComponent1 + GameEntityComponent2 +GameEntityComponent3

    <2.定制化GameEntity-Agent

    Agent.AgentVisuals = MeshComponent + ItemComponent + SkinedMeshComponent

获取AgentComponents
MBReadOnlyList list = Mission.MainAgent.Components;

获取ItemComponents
Equipment equipment = Mission.MainAgent.SpawnEquipment;
EquipmentElement equipmentElement = equipment.GetEquipmentFromSlot(EquipmentIndex.Weapon2);


获取Agent骨骼Skeleton
Skeleton skelton = Mission.MainAgent.AgentVisuals.GetSkeleton();


获取AgentVisual对应components
GameEntityComponent com = Mission.MainAgent.AgentVisuals                     
    .GetEntity().GetComponentAtIndex(1, GameEntity.ComponentType.Light);


添加GameEntity至Agent
sbyte boneIndex = Skeleton.GetBoneIndexFromName 
    (Mission.MainAgent.AgentVisuals.GetSkeleton().GetName(), "head");
Mission.MainAgent.AgentVisuals
    .AddPrefabToAgentVisualBoneByRealBoneIndex("ship_a", boneIndex);


    <3.定制化GameEntity-Item

    Items = ArmorComponent + HorseComponent + TradeItemComponent

                 + WeaponComponent + BannerComponent

#从XML文件中加载ItemObject
ItemObject itemObject = MBObjectManager
    .Instance.GetObject("guarded_padded_vambrace");

#获取Armor/horse等相关属性
int armArmor = itemObject.ArmorComponent.ArmArmor;

二.GameEntity预制&动态创建

    1.在自己的MOD下创建Prefabs文件夹

    2.创建XML文件,配置Prefabs,添加GameEntity


	
		
		
		
			
		
	

    3.在Mission中初始化自己的GameEntity

       GameEntity ship = GameEntity

               .Instantiate(Mission.Scene, “ship_a”, Mission.MainAgent.Frame);

三.GameEntityComponent

    1.GameEntityComponent种类:

		[EngineStruct("rglEntity_component_type", false)]
		public enum ComponentType : uint
		{
			MetaMesh,
			Light,
			CompositeComponent,
			ClothSimulator,
			ParticleSystemInstanced,
			TownIcon,
			CustomType1,
			Decal
		}

    2.GameEntityComponent销毁,创建,使用等事件统称为ScriptComponentBehavior

       <1.在对应GameEntity中添加,添加属于自己的ScriptComponentBehavior

	
		
		
		
		
	

       <2.重写ScriptComponentBehavior的OnInit等方法,实现自己的相关功能

public class SiegeLadderSpawner : ScriptComponentBehavior
{
    protected override void OnPreInit()
	{
		base.OnPreInit();
	}

	protected override void OnInit()
	{
	}
}

      <3.ScriptComponetBehavior种类

可使用Behavior:UsableMachine


可站立前进Behavior:StandingPoint


攻城武器Behavior:SiegeWeapon

本站无任何商业行为
个人在线分享 » 骑砍2霸主MOD开发(12)-游戏实例GameEntity
E-->