Jump to content

Recommended Posts

Posted (edited)

Hello everyone, people often ask me how to help me.


Here I will describe the general principle of how to create a simple window for ui (unity l2)

 

Here I am looking at an already created ActionWindows window

 

1. Assets\Resources\Data\UI\_Elements\Game

2. image.thumb.png.403e3a7e5c8807f396115c7856945f85.png

 

Let's call it ActionWindows

3. Let's go to the newly created window

image.png.eb3690d3e0052e3a32e3feea2609413e.png

4.as you can see it is empty. But we already have a ready-made window template so that we don’t have to assemble it again every time. We will connect a ready-made design for a new window

5. open the window code

image.png.de8bbde2494d0bc383e4bbc22c896e77.png

6.image.png.e97aa9a16f53f4b97141f0ece13d5c58.png

7. Add new code 

<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" xmlns="UnityEngine.UIElements" editor-extension-mode="False">
    <ui:Template name="DefaultWindowsAction" src="project://database/Assets/Resources/Data/UI/_Elements/Template/DefaultWindowsAction.uxml?fileID=9197481963319205126&amp;guid=2fdd4636702f00a4e98644cfa7468b14&amp;type=3#DefaultWindowsAction" />
    <ui:Instance name="defaultWindowsAction" template="DefaultWindowsAction" style="width: 317px; height: 575px; position: absolute;">
        <AttributeOverrides element-name="windows-name-label" text="Actions" />
        <ui:VisualElement name="Background" class="background_over" style="flex-grow: 1; min-width: auto; min-height: auto; justify-content: flex-start; align-items: flex-start; position: absolute; background-image: resource(&apos;Data/UI/Window/Frame_DF_Large_Bg_Darker_Center_Alpha&apos;); height: 91%; top: 38px; width: 95%; left: 8px; display: flex; visibility: visible; overflow: visible; opacity: 1;" />
        <ui:GroupBox name="BoxHeader" class="drag-area" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; padding-top: 0; padding-bottom: 0; padding-left: 0; position: absolute; top: 15px; align-self: stretch; height: 4%; width: 88%;" />
     
    </ui:Instance>
</ui:UXML>

 

8.We take a template 
project://database/Assets/Resources/Data/UI/_Elements/Template/DefaultWindowsAction.uxml

9. This piece of code can be taken from other windows so as not to write every time

10. Save

image.thumb.png.45ca4fc9eeee4e07133981e39190b499.png

11.Drag the GroupBox node

 

image.thumb.png.e20939777d278ce7900269220351d629.png

12.

Changing its position settings

sssssssss7.png

 

I can change all the settings from the editor. But if you knew, then a very similar technology to CSS is better

 

ssss9-2.png

if you open the window code you can notice everything is the same as in css
you can create settings in the window code or use a file with all the styles

 

Assets\Resources\Data\UI\_Elements\L2StyleSheet.uss

ssss10.png


In the next issue we will write code to connect it to the game logic. Unless of course you delete the article.

 

Edited by Gawric
  • Like 2

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Posts

    • I ment interface.u file it self not the code. I can view the file and code inside, but I was unable to edit interface.u file to add the code u shared, could u please share the compiled interface.u file it self?
    • I am always grateful to you. I receive a lot of help from you. Thank you.
    • Sure. This is the AbnormalStatusWnd.uc file with ability of removing buff with ALT + click https://pastebin.com/iVWpYysq
    • Hello, I add this code here https://maxcheaters.com/topic/248730-agathions-acis-401-does-not-interfere-with-summons-or-pets/.     but i have problem with agathion movement, agathion does not move when the player moves. The player must stop moving for Agathion to come close him.   i think the problem is here at < _followTask = ThreadPool.scheduleAtFixedRate(new Follow(this), 1000, 1000); >>       public void followToOwner()     {                  if (_followTask == null)             _followTask = ThreadPool.scheduleAtFixedRate(new Follow(this), 1000, 1000);                                  int rnd = Rnd.get(-30, +30);         SpawnLocation loc = _owner.getPosition();                          if (!checkIfInRange(1000, this, _owner))             teleport(_owner, 30);                  if (_owner.isMoving())             getAI().tryToFollow(_owner, false);         else         {             if (!checkIfInRange(75, this, _owner))                 getAI().tryToMoveTo(new Location(loc.getX()+rnd, loc.getY()+rnd, loc.getZ()), null);             else if (checkIfInRange(30, this, _owner))                 getAI().tryToIdle();                              if (Config.AGATHION_HEAL_OWNER && !getCast().isCastingNow())             {                 if (_owner.isInOlympiadMode() || _owner.isInDuel() || _owner.getPvpFlag() != 0 || _owner.isInsideZone(ZoneId.PVP) || _owner.getKarma() != 0)                     return;                                  if ((_owner.getStatus().getHpRatio() < Config.AGATHION_PERCENT_TO_HEAL))                     getAI().tryToCast(_owner, 1011, 18);             }             else if (!Config.AGATHION_ONLY_FOLLOW && Config.AGATHION_ALLOW_SOCIAL && !isMoving() && !getCast().isCastingNow())                 broadcastPacket(new SocialAction(this, 1));         }  
  • Topics

×
×
  • Create New...