香港新手遊戲開發者論壇

 找回密碼
 立即註冊
查看: 1495|回復: 0

[原創] TextMesh Pro X Fungus (測試中)

[複製鏈接]

63

主題

67

帖子

83 小時

在線時間

管理員

Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

積分
453
發表於 2019-7-1 10:19:34 | 顯示全部樓層 |閱讀模式

馬上註冊,結交更多好友,享用更多功能,讓你輕鬆玩轉社區。

您需要 登錄 才可以下載或查看,沒有帳號?立即註冊

x
Fungus預設使用UGUI中的Text, 想使用TextMesh Pro中的TMP_Text取代的話, 需要一些更改.

1. 先找到其中一個使用了UGUI的Text的地方, 我在SayDialog.cs裡開始, 對著Text右鍵, 按Find References.


2. 接著會顯示出所有使用了UGUI的Text的地方, 除了TextMesh Pro的Script, 所有Fungus的Text我們都將把他轉成TMP_Text.


3. 改成TMP_Text而出現紅色標示, 對著TMP_Text右鍵, 按Resolve->using TMPro;


4. 把所有Fungus Script的Text都改成TMP_Text後, 我們還需要到\Fungus\Resources\Prefabs\中把使用了UGUI的Text的Prefabs改成TMP_Text. 當中包括:
SayDialog
    NameText
    StoryText
MenuDialog
    Text


5.把Text Remove後把TextMeshPro - Text (UI)加上.


6. 上方Rect Transform數值變了, 可以按Revert to Prefab回復, 但Text Mesh Pro UGUI就得重新手動設定.


7. 還有記得把與原本UGUI的Text有聯繫的Script(如Say Dialog)與新的Text Mesh Pro UGUI聯繫上, 最後按上方的Apply以儲存修改好的Prefab.



如果始終不會改Script, 而又只需在很少地方使用TextMesh Pro的話, 可以只改Prefab不改Script, 或許會神奇地生效!
(Say Dialog測試可用此方法)
主要原因是Fungus當中包含了少量簡單粗暴的CODE, 會在找不到原有Text的情況下, 查找其他含有"text"Property的component.
  1.             // Try to find any component with a text property
  2.             if (textUI == null && inputField == null && textMesh == null)
  3.             {
  4.                 var allcomponents = go.GetComponents<Component>();
  5.                 for (int i = 0; i < allcomponents.Length; i++)
  6.                 {
  7.                     var c = allcomponents[i];
  8.                     textProperty = c.GetType().GetProperty("text");
  9.                     if (textProperty != null)
  10.                     {
  11.                         textComponent = c;
  12.                         break;
  13.                     }
  14.                 }
  15.             }
複製代碼



個人簽名
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

手機版|Archiver|植物油氣

GMT+8, 2024-9-20 03:04 AM , Processed in 0.051901 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回復 返回頂部 返回列表