public void BuildVisualWeapon(NodeAddedEvent evt, WeaponGraphicsNode weaponGraphics) { Entity entity = weaponGraphics.Entity; BaseRendererComponent component = new BaseRendererComponent(); Renderer weaponRenderer = TankBuilderUtil.GetWeaponRenderer(weaponGraphics.weaponVisualRoot.gameObject); component.Renderer = weaponRenderer; component.Mesh = (component.Renderer as SkinnedMeshRenderer).sharedMesh; entity.AddComponent <StartMaterialsComponent>(); entity.AddComponent(component); WeaponBoundsComponent component3 = new WeaponBoundsComponent { WeaponBounds = weaponRenderer.bounds }; entity.AddComponent(component3); }
public void LocateWeaponVisualRootUnderMountPoint(NodeAddedEvent evt, TankGraphicsNode tank, [Context, JoinByTank] WeaponGraphicsNode weaponGraphics) { WeaponVisualRootComponent weaponVisualRoot = weaponGraphics.weaponVisualRoot; weaponVisualRoot.transform.parent = tank.tankVisualRoot.transform; Transform mountPoint = tank.mountPoint.MountPoint; GameObject obj2 = new GameObject("VisualMountPoint"); obj2.transform.SetParent(tank.tankVisualRoot.transform, false); obj2.transform.localPosition = mountPoint.localPosition; obj2.transform.localRotation = mountPoint.localRotation; VisualMountPointComponent component = new VisualMountPointComponent { MountPoint = obj2.transform }; tank.Entity.AddComponent(component); weaponVisualRoot.transform.SetParent(obj2.transform, false); weaponVisualRoot.transform.localPosition = Vector3.zero; weaponVisualRoot.transform.localRotation = Quaternion.identity; this.InitCharacterShadowSystem(tank.Entity, tank.tankVisualRoot.transform, weaponGraphics.weaponVisualRoot.transform); base.NewEvent <ContinueAssembleTankEvent>().Attach(tank).ScheduleDelayed(0.3f); }