P12 Editor Alpha v0.8.3.1 Release Notes

New Features:

[Editor] - Object Manager - Drag and drop objects to the top and bottom edges of the panel in the Object Manager bar to perform panel sliding

  • Panel sliding is performed when dragging objects to the top and bottom edges of the object manager panel in the object manager

[Editor] - Special character restriction optimization

  • Optimize the editor with different special character restriction rules

    • Project name now allows input of (1) Chinese (2) English (3) numbers (4) "-" (5) "_"
  • Object Manager now has no character restrictions

  • Property Panel now has no character restrictions

  • Publish game name now allows input of (1) Chinese (2) English (3) numbers (4) "_" (5) ":" (6) "-" (7) " ?" (8) "!" (9)", "(10)" ("(11)")"

[Editor] - Object Manager: Object Manager can now perform searches by object ID

[Editor] - Object Manager: Now automatically adds a serial number to the name after copying the object

[Editor]-Color Picker logic optimization

  • Optimize the color palette, real-time changes in the color effect will be changed in the main viewport corresponding to the final effect after clicking OK, click cancel to return to the state before color mixing

[WorldRun]-Optimize resource loading Optimized the timing of dynamic resource loading, solving the problem that the main thread takes too long to match the information received after blocking due to resource loading, and improved the game loading speed.

[WorldRun]-User TS script compilation optimization Used esbuild to improve compilation speed, improve PIE startup speed

[Engine]-Automatic merging of static models New auto-merge static models feature to optimize game performance.

[GamePlay]-New overhead UI function

  • Added new overhead UI function, through the game function object - World UI, developers can choose UI type - OverheadUI (Overhead UI)

  • Instructions:

    1. Drag the world UI function object into the object list and select the header UI type.

    2. Set the parameters of the header UI such as maximum visible distance, whether it can be obscured, and whether to turn on near large and far small.

    3. Bind the designed UI object to the UI object of the header UI.

    4. Finally, we bind the following script to finish the display of the header UI.

      //Bind character overhead slot player.Character.AttachGameObjectToCharacter(this._UIWdiget, GamePlay.CharacterSocketType.Root); //Set the position offset of the overhead UI this._UIWdige.SetRelativeLocation(new Type.Vector(0, 0, 150))
      

[GamePlay]-Prefab Features

[GamePlay] - New four-wheeled vehicle object

  • Add a new game feature object: four-wheeled vehicle, through which developers can quickly create a four-wheeled vehicle with physical characteristics.

  • Instructions:

    • Mount the four-wheeled carrier function object to the vehicle skeleton model sublevel for use.
  • Select the four-wheeled carrier function object, you can modify the base attributes in the property panel.

  • Select the carrier camera, you can modify the properties of the carrier exclusive camera in the property panel.

[API]-Extend scale interface to support dynamic setting of character scaling

Scaling property in the Property Panel:

Related API

player.character.scale = new Type.Vector(0.5,0.5,0.5);

[API]-New phone vibration interface

/*
Provided a new interface to support calling the phone vibration function
*/
GamePlay.isDynamicVibration(true); //Start vibration 
GamePlay.isDynamicVibration(false); //End vibration

[API]-New time dilation interface

/*
Provided an interface to control the time dilation of specified objects
Provided an interface to control the world time dilation, when the world time dilation, all objects will control the impact
*/
Global.setGlobalTimeDilation(0.5);; //Set world time dilation
GamePlay.GetCurrentPlayer().setCustomTimeDilation(0.5); //Set character time dilation

[API]-New HTTP web request interface

//Request HTTP
MWCore.fetch("http://www.baidu.com").then(response => {
    if (!response.ok) {
        return Promise.reject(new Error(`Failed to fetch baidu: ${response.status}`));
    }
    console.log(`ResponseCode: ${response.status}`);
    console.log(`Headers: ${JSON.stringify(Array.from(response.headers.keys()))} ${JSON.stringify(Array.from(response.headers.values()))}`);
    return response.text();
}).then(content => {
    console.log(`Content: ${content}`);
});

[API]-New effect object interface

/*
New effect object property setting/getting interface
*/
get effectRangeType(): effectRangeType; //Get effect type
set effectRangeType(inEffectRangeType: effectRangeType);  //Set effect type
get effectRangeShape(): effectRangeShape;  //Get effect shapes
set effectRangeShape(inEffectRangeShape: effectRangeShape);  //Set effect shapes
get circleRadius(): number;  //Get the radius of the circle
set circleRadius(inCircleRadius: number);  //Set the radius of the circle
get rectangleWidget(): number;  //Get the length of the rectangle
set rectangleWidget(inRectangleWidget: number);  //Set the length of the rectangle
get rectangleHight(): number;  //Get the width of the rectangle
set rectangleHight(inRectangleHight: number);  //Set the width of the rectangle
get sectorRadius(): number;  //Get the radius of the sector
set sectorRadius(inSectorRadius: number);  //Set the radius of the sector
get sectorAngle(): number;  //Get the angle of the sector
set sectorAngle(inSectorAngle: number);  //Set the angle of the sector
get sphereRadius(): number;  //Get sphere radius
set sphereRadius(inSphereRadius: number);  //Set sphere radius
get cubeWidget(): number;  //Get the length of the cube
set cubeWidget(inCubeWidget: number);  //Set the length of the cube
get cubeHight(): number;  //Get the width of the cube
set cubeHight(inCubeHight: number);  //Get the width of the cube
get cubeLength(): number;  //Get the height of the cube
set cubeLength(inCubeLength: number);  //Get the height of the cube
get segmentRadius(): number;  //get the radius of the segment
set segmentRadius(inSegmentRadius: number);  //set the radius of the segment
get segmentAngle(): number;  //Get the sector angle
set segmentAngle(inSegmentAngle: number);  //Set the sector angle
get segmentHight(): number;  //Get the height of the sector
set segmentHight(inSegmentHight: number);  //Set the height of the sector
Subscribe to Project Twelve
Receive the latest updates directly to your inbox.
Verification
This entry has been permanently stored onchain and signed by its creator.