Files
netease-modsdk-wiki/docs/mcdocs/1-ModAPI/接口/特效/文字面板.md
2025-03-17 13:24:39 +08:00

402 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
sidebarDepth: 1
---
# 文字面板
## CreateTextBoardInWorld
<span style="display:inline;color:#7575f9">客户端</span>
method in mod.client.component.textBoardCompClient.TextBoardComponentClient
- 描述
创建文字面板
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| text | str | 文字显示内容 |
| textColor | tuple(float,float,float,float) | 文字颜色的RGBA值范围0-1 |
| boardColor | tuple(float,float,float,float) | 可选参数默认None设置为黑色面板颜色的RGBA值范围0-1 |
| faceCamera | bool | 是否始终朝向相机, 默认为True |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| int | 返回生成的id如果生成失败返回None |
- 备注
- 切换维度后会自动隐藏非本维度创建的而且没有绑定实体的文字面板, 回到该维度后会自动重新显示
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateTextBoard(clientApi.GetLevelId())
comp.CreateTextBoardInWorld("我显示在世界坐标位置",(0.5, 0.4, 0.3, 0.8),(0, 0, 0, 1), True)
```
## RemoveTextBoard
<span style="display:inline;color:#7575f9">客户端</span>
method in mod.client.component.textBoardCompClient.TextBoardComponentClient
- 描述
删除文字面板
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| boardId | int | 创建的时候返回的id |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| bool | 是否删除成功 |
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateTextBoard(clientApi.GetLevelId())
boardId = comp.CreateTextBoardInWorld("我显示在世界坐标位置",(0.5, 0.4, 0.3, 0.8),(0, 0, 0, 1), True)
if boardId:
comp.RemoveTextBoard(boardId)
```
## SetBoardBackgroundColor
<span style="display:inline;color:#7575f9">客户端</span>
method in mod.client.component.textBoardCompClient.TextBoardComponentClient
- 描述
修改背景颜色
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| boardId | int | 文字面板的id |
| backgroundColor | tuple(float,float,float,float) | 颜色的RGBA值范围0-1 |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| bool | 返回是否设置成功 |
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateTextBoard(clientApi.GetLevelId())
boardId = comp.CreateTextBoardInWorld("我显示在玩家头顶",(0.5, 0.4, 0.3, 0.8),(0, 0, 0, 1),True)
if boardId:
comp.SetBoardBindEntity(boardId, clientApi.GetLocalPlayerId(), (0.0, 1.5, 0.0), (0.0, 0.0, 0.0))
comp.SetBoardBackgroundColor(boardId, (1.0, 1.0, 1.0, 1.0))
```
## SetBoardBindEntity
<span style="display:inline;color:#7575f9">客户端</span>
method in mod.client.component.textBoardCompClient.TextBoardComponentClient
- 描述
文字面板绑定实体对象
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| boardId | int | 文字面板的id |
| bindEntityId | str | 绑定entity的Id; 如果为None则为取消实体绑定, 此时下面参数为世界坐标和旋转 |
| offset | tuple(float,float,float) | 相对于实体的偏移量 |
| rot | tuple(float,float,float) | 相对于实体的偏移角度 |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| bool | 返回是否设置成功 |
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateTextBoard(clientApi.GetLevelId())
boardId = comp.CreateTextBoardInWorld("我显示在玩家头顶",(0.5, 0.4, 0.3, 0.8),(0, 0, 0, 1),True)
if boardId:
comp.SetBoardBindEntity(boardId, clientApi.GetLocalPlayerId(), (0.0, 1.5, 0.0), (0.0, 0.0, 0.0))
```
## SetBoardDepthTest
<span style="display:inline;color:#7575f9">客户端</span>
method in mod.client.component.textBoardCompClient.TextBoardComponentClient
- 描述
设置是否开启深度测试, 默认状态下是开启
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| boardId | int | 文字面板的id |
| depthTest | bool | True为开启深度测试,False为不开启 |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| bool | 返回是否设置成功 |
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateTextBoard(clientApi.GetLevelId())
boardId = comp.CreateTextBoardInWorld("我显示在玩家头顶",(0.5, 0.4, 0.3, 0.8),(0, 0, 0, 1),True)
if boardId:
comp.SetBoardBindEntity(boardId, clientApi.GetLocalPlayerId(), (0.0, 1.5, 0.0), (0.0, 0.0, 0.0))
comp.SetBoardDepthTest(boardId, False)
```
## SetBoardFaceCamera
<span style="display:inline;color:#7575f9">客户端</span>
method in mod.client.component.textBoardCompClient.TextBoardComponentClient
- 描述
设置文字面板的朝向
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| boardId | int | 文字面板的id |
| faceCamera | bool | 是否始终朝向相机, 默认为True |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| bool | 返回是否设置成功 |
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateTextBoard(clientApi.GetLevelId())
boardId = comp.CreateTextBoardInWorld("我显示在玩家头顶",(0.5, 0.4, 0.3, 0.8),(0, 0, 0, 1),True)
if boardId:
comp.SetBoardBindEntity(boardId, clientApi.GetLocalPlayerId(), (0.0, 1.5, 0.0), (0.0, 0.0, 0.0))
comp.SetBoardFaceCamera(boardId, True)
```
## SetBoardPos
<span style="display:inline;color:#7575f9">客户端</span>
method in mod.client.component.textBoardCompClient.TextBoardComponentClient
- 描述
修改位置
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| boardId | int | 文字面板的id |
| pos | tuple(float,float,float) | 坐标 |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| bool | 返回是否设置成功 |
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateTextBoard(clientApi.GetLevelId())
boardId = comp.CreateTextBoardInWorld("我显示在玩家头顶",(0.5, 0.4, 0.3, 0.8),(0, 0, 0, 1),True)
if boardId:
comp.SetBoardBindEntity(boardId, clientApi.GetLocalPlayerId(), (0.0, 1.5, 0.0), (0.0, 0.0, 0.0))
comp.SetBoardPos(boardId, (0.0, 3.0, 0.0))
```
## SetBoardRot
<span style="display:inline;color:#7575f9">客户端</span>
method in mod.client.component.textBoardCompClient.TextBoardComponentClient
- 描述
修改旋转角度, 若设置了文本朝向相机,则旋转角度的修改不会生效
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| boardId | int | 文字面板的id |
| rot | tuple(float,float,float) | 角度(不是弧度) |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| bool | 返回是否设置成功 |
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateTextBoard(clientApi.GetLevelId())
boardId = comp.CreateTextBoardInWorld("我显示在玩家头顶",(0.5, 0.4, 0.3, 0.8),(0, 0, 0, 1),True)
if boardId:
comp.SetBoardBindEntity(boardId, clientApi.GetLocalPlayerId(), (0.0, 1.5, 0.0), (0.0, 0.0, 0.0))
comp.SetBoardRot(boardId, (45.0, 90.0, 0.0))
```
## SetBoardScale
<span style="display:inline;color:#7575f9">客户端</span>
method in mod.client.component.textBoardCompClient.TextBoardComponentClient
- 描述
内容整体缩放
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| boardId | int | 文字面板的id |
| scale | tuple(float,float) | x,y方向上的缩放值,要求值大于0,正常状态下是(1.0,1.0) |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| bool | 返回是否设置成功 |
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateTextBoard(clientApi.GetLevelId())
boardId = comp.CreateTextBoardInWorld("我显示在玩家头顶",(0.5, 0.4, 0.3, 0.8),(0, 0, 0, 1),True)
if boardId:
comp.SetBoardBindEntity(boardId, clientApi.GetLocalPlayerId(), (0.0, 1.5, 0.0), (0.0, 0.0, 0.0))
comp.SetBoardScale(boardId, (2.0, 2.0))
```
## SetBoardTextColor
<span style="display:inline;color:#7575f9">客户端</span>
method in mod.client.component.textBoardCompClient.TextBoardComponentClient
- 描述
修改字体颜色
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| boardId | int | 文字面板的id |
| textColor | tuple(float,float,float,float) | 颜色的RGBA值范围0-1 |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| bool | 返回是否设置成功 |
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateTextBoard(clientApi.GetLevelId())
boardId = comp.CreateTextBoardInWorld("我显示在玩家头顶",(0.5, 0.4, 0.3, 0.8),(0, 0, 0, 1),True)
if boardId:
comp.SetBoardBindEntity(boardId, clientApi.GetLocalPlayerId(), (0.0, 1.5, 0.0), (0.0, 0.0, 0.0))
comp.SetBoardTextColor(boardId, (1.0, 1.0, 0.0, 0.8))
```
## SetText
<span style="display:inline;color:#7575f9">客户端</span>
method in mod.client.component.textBoardCompClient.TextBoardComponentClient
- 描述
修改文字面板内容
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| boardId | int | 文字面板id |
| text | str | 文字内容 |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| bool | 是否修改成功 |
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateTextBoard(clientApi.GetLevelId())
boardId = comp.CreateTextBoardInWorld("初始文字",(0.5, 0.4, 0.3, 0.8),(0, 0, 0, 1),True)
if boardId:
comp.SetText(boardId, "修改后的文字")
```