Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 最近最新中文字幕,欧美视频午夜在线观看免费视频,孩交精品xxxx视频视频

          整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          HTML5游戲如何利用渠道傳播

          2015年的眾多HTML5(以下簡稱H5)游戲當(dāng)中,有個(gè)別游戲以超高的月流水向大眾展示了其在未來游戲行業(yè)中不可限量的發(fā)展趨勢。2015年4月,《愚公移山》以月流水超100萬的成績拔得頭籌引起業(yè)界關(guān)注后,《傳奇世界》H5上線3個(gè)月月流水就破了1500萬。而今年2月14日情人節(jié)刷爆朋友圈的《曬結(jié)婚證》H5更是驗(yàn)證了移動(dòng)網(wǎng)頁游戲是如何利用碎片化的時(shí)間贏得市場的。

          盡管如此,H5也并非像市場吹噓的那樣樂觀。DataEye《2015年中國移動(dòng)游戲行業(yè)年度報(bào)告》顯示,截止到2015年底,H5游戲數(shù)量超過3000款,盡管發(fā)展態(tài)勢樂觀毋庸置疑,但是2015年的H5游戲市場未如年初預(yù)言那般迎來所謂的爆發(fā)。也就是說H5的現(xiàn)狀就是千軍萬馬過獨(dú)木橋,大部分還是未能踏上橋就被出局。

          因此有業(yè)內(nèi)人士就表示,不管是類型和玩法的豐富性,還是游戲內(nèi)容的體驗(yàn),H5游戲都存在很大不足,因此手機(jī)用戶的真實(shí)導(dǎo)入量長期處于很低的水平。那么面對美麗泡沫般的H5游戲,在除去好的產(chǎn)品技術(shù)外,更應(yīng)該在渠道上下功夫了。

          瀏覽器

          以UC瀏覽器、QQ瀏覽器、手機(jī)百度為代表的瀏覽器渠道,是目前大部分H5游戲的主要流量來源,在所有流量來源中占比50%。

          因此H5游戲廠商就需要根據(jù)瀏覽器的屬性去調(diào)整,例如在《傳奇世界》H5渠道推廣中,瀏覽器的ARPU值高,大R用戶多。而玩吧要做小付費(fèi),游戲就針對它開了2元、6元的小付費(fèi),ARPU值不高,但付費(fèi)率高,用戶短平快。

          微信朋友圈KOL

          2014-2015年,多數(shù)耳熟能詳H5游戲均出自朋友圈傳播,如《圍住神經(jīng)貓》、《打企鵝》、《找房祖名》、《貂蟬有妖氣》、《時(shí)尚都市》、《來消星星的你》等爆款,因此,朋友圈被譽(yù)為最早的H5推廣的溫床。

          雖然它被公認(rèn)為最適合在微信平臺上傳播,但是在之前《神經(jīng)貓》取得大火之后,基于對產(chǎn)品體驗(yàn)的考慮,微信朋友圈對于H5游戲的分享進(jìn)行了流量管制,微信平臺過了10萬、20萬就可能被封掉了。而隨后再也沒有出現(xiàn)過像《神經(jīng)貓》那樣大范圍傳播的H5游戲,直到《曬結(jié)婚證》H5的出現(xiàn)火了一整天也難逃被封的厄運(yùn)。

          盡管如此,朋友圈依然是適用于H5推廣的一個(gè)渠道,因此不能因?yàn)橄拗凭臀肥治纺_,找到一個(gè)好的契合點(diǎn),與用戶行為習(xí)慣都相吻合,制造出更多的KOL才能將品牌打入用戶手中,反過來說,一旦火爆被封,也可以在中轉(zhuǎn)、跳轉(zhuǎn)做一些調(diào)整,然后在一個(gè)時(shí)間節(jié)點(diǎn)上取消引導(dǎo)關(guān)注。

          APP

          去年包括滴滴、萬能鑰匙Wifi在內(nèi)的多個(gè)超級APP開始嘗試HTML5游戲的推廣,不過在實(shí)際操作中的轉(zhuǎn)換和留存率表現(xiàn)較為一般。

          然而盡管目前長尾的流量型APP為HTML5游戲帶來的流量并不高,但卻是最具發(fā)展?jié)摿Φ那李愋?。比?秒輕游戲推出的APP游戲化運(yùn)營解決方案,就快速為大量APP提供了“輕游戲+輕社交”的HTML5內(nèi)容入口。

          因此未來HTML5游戲渠道將出現(xiàn)定制化的游戲生態(tài)。以滴滴為例,開發(fā)商可通過針對打車優(yōu)惠卷和周邊禮品互動(dòng)等內(nèi)容進(jìn)行相關(guān)推薦,從而引導(dǎo)和擴(kuò)大用戶需求。

          傳統(tǒng)游戲平臺

          像是5秒輕游戲、4399、手機(jī)小游戲、中國電信愛游戲、火舞游戲、1758等傳統(tǒng)線上分發(fā)渠道,相較于在原生手游市場的呼風(fēng)喚雨,線上分發(fā)平臺目前對HTML5游戲的分發(fā)并不盡如人意,只占整個(gè)市場的20%。因此多數(shù)H5不選用這樣的推廣渠道與手游端游去PK。但如果有強(qiáng)IP做支撐,這樣的平臺再合適不過了。

          媒體及公眾號推廣

          H5游戲在新聞媒體上發(fā)消息需要的就是耐心,專業(yè)的媒體渠道必不可少,這是游戲品牌建設(shè)的基本保障,比如一個(gè)H5在媒體投放廣告,一開始可能只有千個(gè)新增用戶,收入不高,但媒體投放持續(xù)幾個(gè)月后達(dá)到曝光,就會收入就會翻幾倍,這時(shí)需要考慮的因素就很多了,比如廣告素材,活動(dòng)要跟上以及細(xì)致經(jīng)營等。

          公號的推廣就是軟文的形式,大V的領(lǐng)導(dǎo)作用也是有目共睹,雖然近些年對于大V粉絲作假的說法時(shí)有發(fā)生,但是即使只有千分之一的真粉,他們也能一石激起千層浪。

          目前H5游戲分發(fā)渠道有上百家,這里只是簡單介紹了用處最多的五種。而未來渠道整合一定是H5游戲線上分發(fā)過程中最重要的環(huán)節(jié)。因此,從多年來驗(yàn)證過的互聯(lián)網(wǎng)三種盈利模式看,H5游戲的推廣一是以上述廣告營銷渠道為主,二是電商類的一些合作也可能會在今年快速推進(jìn)。

          微信ID:yxhygc1

          長按二維碼關(guān)注我

          薦:使用NSDT 編輯器快速搭建3D應(yīng)用場景


          建 模 和 3D 地形

          大多數(shù) 3D 對象是 使用建模工具創(chuàng)建,這是有充分理由的。創(chuàng)建復(fù)雜對象 (如飛機(jī)甚至建筑物)很難在代碼中完成。建模工具 幾乎總是有意義的,但也有例外!其中之一可能是案例 就像飛行拱廊島連綿起伏的丘陵一樣。我們最終使用了 我們發(fā)現(xiàn)更簡單,甚至可能更直觀的技術(shù):一個(gè) 高度圖。

          高度圖是一種 使用常規(guī)二維圖像來描述 像島嶼或其他地形一樣的表面。這是一種非常常見的使用方式 高程數(shù)據(jù),不僅在游戲中,而且在地理信息系統(tǒng)中 制圖師和地質(zhì)學(xué)家使用的 (GIS)。

          幫助您獲得想法 有關(guān)其工作原理,請查看此交互式演示中的高度圖。嘗試?yán)L圖 ,然后檢出生成的地形。

          高度圖背后的概念 很簡單。在上圖所示的圖像中,純黑色是 “地板”和純白色是最高峰。介于兩者之間的灰度顏色 表示相應(yīng)的高程。這為我們提供了 256 個(gè)海拔高度,這 是我們游戲的大量細(xì)節(jié)。實(shí)際應(yīng)用程序可能會使用完整的 色譜可存儲更多層次的細(xì)節(jié)(2564 = 4,294,967,296 級 詳細(xì)信息(如果包含 Alpha 通道)。

          高度圖有幾個(gè) 與傳統(tǒng)多邊形網(wǎng)格相比的優(yōu)勢:

          一、高度圖很多 更緊湊。僅存儲最重要的數(shù)據(jù)(高程)。它 需要以編程方式轉(zhuǎn)換為 3D 對象,但這是 經(jīng)典交易:您現(xiàn)在節(jié)省空間,稍后通過計(jì)算付款。通過存儲 數(shù)據(jù)即圖像,您將獲得另一個(gè)空間優(yōu)勢:您可以利用標(biāo)準(zhǔn) 圖像壓縮技術(shù)并使數(shù)據(jù)變?。ㄏ啾戎拢?!

          其次,高度圖是一個(gè) 生成、可視化和編輯地形的便捷方式。非常直觀 當(dāng)你看到一個(gè)。感覺有點(diǎn)像看地圖。這被證明是 對飛行街機(jī)特別有用。我們設(shè)計(jì)和編輯了我們的島嶼 在 Photoshop 中!這使得根據(jù)需要進(jìn)行小調(diào)整變得非常簡單。 例如,當(dāng)我們想確保跑道完全平坦時(shí), 我們只是確保以單一顏色在該區(qū)域上繪畫。

          您可以看到高度圖 下面的飛行拱廊。看看你是否能發(fā)現(xiàn)我們?yōu)?跑道和村莊。

          飛行街機(jī)島的高度圖。它是在Photoshop中創(chuàng)建的,它基于著名的太平洋島鏈中的“大島”。有什么猜測嗎?

          在解碼高度貼圖后映射到生成的 3D 網(wǎng)格上的紋理。更多內(nèi)容見下文。

          解碼高度圖

          我們用Babylon.js建造了飛行拱廊,Babylon給了我們一個(gè)漂亮的 從高度圖到 3D 的簡單路徑。Babylon提供了一個(gè) API 來生成 來自高度圖圖像的網(wǎng)格幾何體:

          ar ground = BABYLON.Mesh.CreateGroundFromHeightMap(

          'your-mesh-name',

          '/path/to/heightmap.png',

          100, // width of the ground mesh (x axis)
          100, // depth of the ground mesh (z axis)

          40, // number of subdivisions

          0, // min height

          50, // max height

          scene,

          false, // updateable?

          null // callback when mesh is ready
          );`

          細(xì)節(jié)量是 由該細(xì)分的財(cái)產(chǎn)決定。需要注意的是, 參數(shù)是指高度圖兩側(cè)的細(xì)分?jǐn)?shù)量 圖像,而不是單元格總數(shù)。所以稍微增加這個(gè)數(shù)字可以 對網(wǎng)格中的頂點(diǎn)總數(shù)有很大影響。

          • 20 個(gè)細(xì)分 = 400 細(xì)胞
          • 50 個(gè)細(xì)分 = 2,500 細(xì)胞
          • 100 個(gè)細(xì)分 = 10,000 細(xì)胞
          • 500 個(gè)細(xì)分 = 250,000 細(xì)胞
          • 1,000 個(gè)細(xì)分 = 1,000,000 細(xì)胞

          在下一節(jié)中,我們將 了解如何為地面設(shè)置紋理,但在嘗試使用高度貼圖時(shí) 創(chuàng)建時(shí),查看線框很有用。這是應(yīng)用簡單代碼 線框紋理,因此很容易看到高度圖數(shù)據(jù)是如何轉(zhuǎn)換為的 網(wǎng)格的頂點(diǎn):

          // simple wireframe material

          var material = new BABYLON.StandardMaterial('ground-material', scene);

          material.wireframe = true;

          ground.material = material;`

          創(chuàng)建紋理細(xì)節(jié)

          一旦我們有一個(gè)模型,映射一個(gè) 質(zhì)地相對簡單。對于飛行街機(jī),我們簡單地創(chuàng)建了一個(gè) 非常大的圖像,與我們的高度圖中的島嶼相匹配。圖像得到 延伸到地形的輪廓上,所以紋理和高度圖 保持相關(guān)性。這真的很容易想象,再一次,所有 制作工作是在Photoshop中完成的。

          原始紋理圖像是 創(chuàng)建于 4096x4096。那可是挺大的?。ㄎ覀冏罱K將尺寸減小了 為了保持下載合理,級別到2048x2048,但所有 使用全尺寸圖像進(jìn)行開發(fā)。這是來自 原始紋理。

          原始島嶼紋理的全像素示例。整個(gè)城鎮(zhèn)只有大約300平方像素。

          這些矩形表示 島上城鎮(zhèn)的建筑。我們很快注意到 我們可以在地形和 其他 3D 模型。即使使用我們巨大的島嶼紋理,區(qū)別在于 令人分心的明顯!

          為了解決這個(gè)問題,我們“混合” 以隨機(jī)噪聲的形式進(jìn)入地形紋理的附加細(xì)節(jié)。您可以 請參閱下面的之前和之后。注意額外的噪點(diǎn)如何增強(qiáng)外觀 地形細(xì)節(jié)。

          我們創(chuàng)建了一個(gè)自定義著色器 添加噪音。著色器為您提供了對 WebGL 3D 場景的渲染,這是著色器如何 有用。

          WebGL著色器由兩個(gè)組成 主要部分:頂點(diǎn)和片段著色器。頂點(diǎn)的主要目標(biāo) 著色器是將頂點(diǎn)映射到渲染幀中的某個(gè)位置。片段(或 像素)著色器控制像素的結(jié)果顏色。

          著色器是用 稱為GLSL(圖形庫著色器語言)的高級語言,它 類似于C。此代碼在 GPU 上執(zhí)行。深入了解如何 著色器工作,請參閱此處 有關(guān)如何為 Babylon.js 創(chuàng)建自己的自定義著色器的教程,或參閱此圖形著色器編碼初學(xué)者指南。

          頂點(diǎn)著色器

          我們不會改變我們的 紋理映射到地面網(wǎng)格體,因此我們的頂點(diǎn)著色器非常簡單。 它只是計(jì)算標(biāo)準(zhǔn)映射并分配目標(biāo)位置。

          precision mediump float;
          // Attributes
          attribute vec3 position;
          attribute vec3 normal;
          attribute vec2 uv;
          // Uniforms
          uniform mat4 worldViewProjection;
          // Varying
          varying vec4 vPosition;
          varying vec3 vNormal;
          varying vec2 vUV;
          void main() {
          vec4 p = vec4( position, 1.0 );
          vPosition = p;
          vNormal = normal;
          vUV = uv;
          gl_Position = worldViewProjection * p;
          }

          碎片著色器

          我們的片段著色器有點(diǎn) 更復(fù)雜。它結(jié)合了兩個(gè)不同的圖像:基礎(chǔ)圖像和混合圖像。 基礎(chǔ)圖像映射到整個(gè)地面網(wǎng)格。在飛行街機(jī)中,這個(gè) 是島嶼的彩色圖像?;旌蠄D像是使用的小噪點(diǎn)圖像 在近距離為地面提供一些紋理和細(xì)節(jié)。著色器 組合每個(gè)圖像中的值以創(chuàng)建跨 島。

          飛行的最后一課 街機(jī)發(fā)生在有霧的日子,所以我們的像素著色器的另一個(gè)任務(wù)是 調(diào)整顏色以模擬霧。調(diào)整基于頂點(diǎn)的距離 來自相機(jī),遠(yuǎn)處像素被“遮擋”得更厲害 在霧中。您將在函數(shù)中看到此距離計(jì)算 在主著色器代碼上方。calcFogFactor

          // #ifdef GL_ES
          precision highp float;
          // #endif
          uniform mat4 worldView;
          varying vec4 vPosition;
          varying vec3 vNormal;
          varying vec2 vUV;
          // Refs
          uniform sampler2D baseSampler;
          uniform sampler2D blendSampler;
          uniform float blendScaleU;
          uniform float blendScaleV;
          // #define FOGMODE_NONE 0.
          // #define FOGMODE_EXP 1.
          // #define FOGMODE_EXP2 2.
          // #define FOGMODE_LINEAR 3.
          // #define E 2.71828
          uniform vec4 vFogInfos;
          uniform vec3 vFogColor;
          float calcFogFactor() {
          // gets distance from camera to vertex
          float fogDistance = gl_FragCoord.z / gl_FragCoord.w;
          float fogCoeff = 1.0;
          float fogStart = vFogInfos.y;
          float fogEnd = vFogInfos.z;
          float fogDensity = vFogInfos.w;
          if (FOGMODE_LINEAR == vFogInfos.x) {
          fogCoeff = (fogEnd - fogDistance) / (fogEnd - fogStart);
          }
          else if (FOGMODE_EXP == vFogInfos.x) {
          fogCoeff = 1.0 / pow(E, fogDistance * fogDensity);
          }
          else if (FOGMODE_EXP2 == vFogInfos.x) {
          fogCoeff = 1.0 / pow(E, fogDistance * fogDistance * fogDensity * fogDensity);
          }
          return clamp(fogCoeff, 0.0, 1.0);
          }
          void main(void) {
          vec4 baseColor = texture2D(baseSampler, vUV);
          vec2 blendUV = vec2(vUV.x * blendScaleU, vUV.y * blendScaleV);
          vec4 blendColor = texture2D(blendSampler, blendUV);
          // multiply type blending mode
          vec4 color = baseColor * blendColor;
          // factor in fog color
          float fog = calcFogFactor();
          color.rgb = fog * color.rgb + (1.0 - fog) * vFogColor;
          gl_FragColor = color;
          }

          我們定制的最后一件作品 Blend shader 是 Babylon 使用的 JavaScript 代碼。主要目的 此代碼用于準(zhǔn)備傳遞給頂點(diǎn)和像素著色器的參數(shù)。

          function BlendMaterial(name, scene, options) {
          this.name = name;
          this.id = name;
          this.options = options;
          this.blendScaleU = options.blendScaleU || 1;
          this.blendScaleV = options.blendScaleV || 1;
          this._scene = scene;
          scene.materials.push(this);
          var assets = options.assetManager;
          var textureTask = assets.addTextureTask('blend-material-base-task', options.baseImage);
          textureTask.onSuccess = _.bind(function(task) {

              this.baseTexture = task.texture;
              this.baseTexture.uScale = 1;
              this.baseTexture.vScale = 1;
              if (options.baseHasAlpha) {
                  this.baseTexture.hasAlpha = true;
              }
          }, this);
          textureTask = assets.addTextureTask('blend-material-blend-task', options.blendImage);
          textureTask.onSuccess = _.bind(function(task) {
              this.blendTexture = task.texture;
              this.blendTexture.wrapU = BABYLON.Texture.MIRROR_ADDRESSMODE;
              this.blendTexture.wrapV = BABYLON.Texture.MIRROR_ADDRESSMODE;
          }, this);
          

          }
          BlendMaterial.prototype = Object.create(BABYLON.Material.prototype);
          BlendMaterial.prototype.needAlphaBlending = function () {
          return (this.options.baseHasAlpha === true);
          };
          BlendMaterial.prototype.needAlphaTesting = function () {
          return false;
          };
          BlendMaterial.prototype.isReady = function (mesh) {
          var engine = this._scene.getEngine();
          // make sure textures are ready
          if (!this.baseTexture || !this.blendTexture) {
          return false;
          }
          if (!this._effect) {
          this._effect = engine.createEffect(
          // shader name
          "blend",
          // attributes describing topology of vertices
          [ "position", "normal", "uv" ],
          // uniforms (external variables) defined by the shaders
          [ "worldViewProjection", "world", "blendScaleU", "blendScaleV", "vFogInfos", "vFogColor" ],
          // samplers (objects used to read textures)
          [ "baseSampler", "blendSampler" ],
          // optional define string
          "");
          }
          if (!this._effect.isReady()) {
          return false;
          }
          return true;
          };
          BlendMaterial.prototype.bind = function (world, mesh) {
          var scene = this._scene;
          this._effect.setFloat4("vFogInfos", scene.fogMode, scene.fogStart, scene.fogEnd, scene.fogDensity);
          this._effect.setColor3("vFogColor", scene.fogColor);
          this._effect.setMatrix("world", world);
          this._effect.setMatrix("worldViewProjection", world.multiply(scene.getTransformMatrix()));
          // Textures
          this._effect.setTexture("baseSampler", this.baseTexture);
          this._effect.setTexture("blendSampler", this.blendTexture);
          this._effect.setFloat("blendScaleU", this.blendScaleU);
          this._effect.setFloat("blendScaleV", this.blendScaleV);
          };
          BlendMaterial.prototype.dispose = function () {
          if (this.baseTexture) {
          this.baseTexture.dispose();
          }
          if (this.blendTexture) {
          this.blendTexture.dispose();
          }
          this.baseDispose();
          };

          Babylon.js使它變得容易 創(chuàng)建基于著色器的自定義材質(zhì)。我們的混合材料相對簡單, 但它確實(shí)對島嶼的外觀產(chǎn)生了很大的影響,當(dāng) 飛機(jī)低空飛到地面。著色器將 GPU 的強(qiáng)大功能帶到 瀏覽器,擴(kuò)展可應(yīng)用于 3D 的創(chuàng)意效果類型 場景。在我們的案例中,這是畫龍點(diǎn)名!

          原文鏈接:使用 WebGL 為 HTML5 游戲創(chuàng)建逼真的地形

          為一名HTML5游戲開發(fā)者,

          你還在為如何絞盡腦汁也玩不轉(zhuǎn)命令行而憤恨嗎?

          你還在為無法及時(shí)預(yù)覽自己所編輯的UI效果而苦惱嗎?

          你還在為翻來覆去進(jìn)行繁瑣的調(diào)試流程而糾結(jié)嗎?

          你還在為同時(shí)在幾個(gè)工具之間切換編輯而混亂嗎?

          此時(shí),你是不是特別渴望一款全功能集成開發(fā)工具呢?

          白鷺Egret Wing2.0恰逢其時(shí)地出現(xiàn),為開發(fā)者帶來移動(dòng)游戲開發(fā)一站式解決方案。

          Egret Wing2.0是什么?

          Egret Wing2.0是一款針對Egret項(xiàng)目的集成開發(fā)環(huán)境,通過可視化方式創(chuàng)建、編輯和管理項(xiàng)目中所有游戲用戶界面,并同時(shí)進(jìn)行TS代碼編寫和斷點(diǎn)調(diào)試。

          (經(jīng)過全新的升級,Egret Wing2.0給開發(fā)者帶來更加高效便捷的開發(fā)環(huán)境)

          為什么選擇Egret Wing2.0?

          1. 工具體積精簡,用戶體驗(yàn)更流暢。

          內(nèi)存占用小,代碼提示快:由于Egret Wing 2.0是為Egret項(xiàng)目深度定制并全部自主研發(fā),省去其他不必要功能,故內(nèi)存占用小,代碼提示速度也高于基于Eclipse等大型工具定制的同類型產(chǎn)品。

          加載速度快,體驗(yàn)流暢:由于針對性強(qiáng),不依賴第三方大型開源工具,沒有不必要的額外啟動(dòng)選項(xiàng),所以加載速度更快,增強(qiáng)了用戶體驗(yàn)流暢性。

          2. 即時(shí)錯(cuò)誤提示

          在編譯之前就可即時(shí)發(fā)現(xiàn)代碼中的語法語義錯(cuò)誤,并實(shí)時(shí)反饋錯(cuò)誤代碼位置和原因,以便開發(fā)者能夠快速修改。

          3. 全功能代碼編輯器

          作為一款全功能的集成開發(fā)環(huán)境,向開發(fā)者提供智能代碼提示。

          代碼提示精準(zhǔn):即時(shí)提示可能要輸入的類、方法或變量等,更容易看到選擇部分的注釋內(nèi)容,提高代碼編寫速度和準(zhǔn)確率。

          懸浮注釋提示:通過鼠標(biāo)懸浮的方式,快速查看指定內(nèi)容處注釋。

          智能代碼定位:相同類型的類、對象、屬性的高亮標(biāo)記,便于開發(fā)者快速定位其在程序文件中的位置。

          4. 強(qiáng)大的debug能力

          Egret Wing2.0面向開發(fā)者提供了強(qiáng)大的無縫調(diào)試能力。

          一鍵調(diào)試:一鍵啟動(dòng)調(diào)試功能,方便快捷地在工具內(nèi)調(diào)試Egret游戲和應(yīng)用。

          TypeScript腳本斷點(diǎn)調(diào)試:無需任何配置直接在TS源代碼上設(shè)置斷點(diǎn)調(diào)試TS代碼。

          5.可視化編輯UI

          Egret Wing 提供的全局可視化UI編輯界面。

          全程可視化編輯:通過可視化的方式直接拖拽和編輯UI皮膚屬性,全程傻瓜式操作,免去寫代碼的煩惱。

          可視化編輯UI動(dòng)畫效果:新增動(dòng)畫面板,以時(shí)間軸方式可視化操作UI組件,制作出不同動(dòng)畫效果,并可在預(yù)覽模式中直接查看效果。

          Egret Wing2.0的使用效果如何?

          Egret Wing2.0終于讓我告別命令行時(shí)代,自動(dòng)編譯項(xiàng)目,直接在瀏覽器中刷新就可以查看效果。同時(shí),皮膚制作和代碼編輯都在同一個(gè)工具中進(jìn)行,不需要在幾個(gè)工具之間來回切換。此外,直接在TS中進(jìn)行代碼調(diào)試,大大縮減到瀏覽器中調(diào)試的時(shí)間成本。

          ——某白鷺游戲開發(fā)者

          如何獲取Egret Wing2.0?

          6月8日以后,歡迎廣大開發(fā)者直接通過白鷺引擎面板更新到 Egret Wing2.0版,即可體驗(yàn)各種酷爽功能。

          如對Egret Wing2.0有任何疑問?

          如針對Egret Wing2.0版本有任何疑問,歡迎大家掃描下面二維碼關(guān)注微信服務(wù)號“白鷺引擎開發(fā)者服務(wù)平臺”,白鷺技術(shù)服務(wù)團(tuán)隊(duì)將為你答疑解惑。


          主站蜘蛛池模板: 久久久久一区二区三区 | 国产在线不卡一区二区三区| 国产日韩高清一区二区三区| 欧洲无码一区二区三区在线观看| 在线播放国产一区二区三区| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 四虎精品亚洲一区二区三区| 男人的天堂av亚洲一区2区 | 亚洲图片一区二区| 国产成人高清亚洲一区久久| 伊人无码精品久久一区二区| 精品无码一区二区三区在线| 无码AⅤ精品一区二区三区| 亚洲AV无码一区二区三区鸳鸯影院 | 日本视频一区二区三区 | 亚洲日韩激情无码一区| 中文字幕一区二区三区免费视频| 亚洲国产高清在线一区二区三区 | 一区 二区 三区 中文字幕 | 中文字幕一区在线播放| chinese国产一区二区| 波多野结衣精品一区二区三区| 国产成人一区二区在线不卡| 国模视频一区二区| 国产乱码精品一区二区三区麻豆| 中文字幕日韩一区二区不卡 | 亚洲AV无码一区二区二三区软件| 国模无码一区二区三区不卡| 亚洲韩国精品无码一区二区三区| 亚洲一区无码中文字幕| 久久久精品人妻一区亚美研究所| 久久久久成人精品一区二区 | 福利一区二区在线| 亚洲国产一区明星换脸| 国产区精品一区二区不卡中文| 久久无码人妻一区二区三区| 在线精品亚洲一区二区| 国产一区二区免费在线| 任你躁国产自任一区二区三区| 久久精品一区二区| 国产小仙女视频一区二区三区|