unity3d添加两个text对象
时间: 2025-06-22 07:45:14 浏览: 5
### 创建和添加两个Text对象
为了在Unity3D中创建并添加两个`Text`对象,需遵循特定的操作流程。首先,在项目视图中确保已安装必要的UI组件包[^1]。
#### 添加Canvas
由于`Text`对象必需作为`Canvas`的子物体存在,因此先要创建一个`Canvas`:
1. 在Hierarchy窗口点击右上角的Create按钮;
2. 选择UI下的Canvas选项来创建画布;这一步骤会自动附带一个EventSystem用于处理输入事件[^2]。
#### 插入第一个Text对象
完成上述操作后,可继续向场景内加入首个文本显示元素:
```csharp
using UnityEngine;
using UnityEngine.UI;
public class AddTextExample : MonoBehaviour {
void Start() {
// 获取 Canvas 组件
GameObject canvas = GameObject.Find("Canvas");
// 如果找不到则新建一个 Canvas
if (canvas == null) {
canvas = new GameObject("Canvas", typeof(Canvas));
var rt = canvas.GetComponent<RectTransform>();
rt.sizeDelta = new Vector2(800, 600);
canvas.AddComponent<GraphicRaycaster>(); // UI交互支持
canvas.transform.SetParent(null); // 设置为顶级节点
}
// 新建 Text 对象
GameObject textObjectOne = new GameObject("FirstText", typeof(RectTransform), typeof(Text));
// 配置 Text 属性
Text firstTextComponent = textObjectOne.GetComponent<Text>();
firstTextComponent.text = "This is First Text";
firstTextComponent.color = Color.red;
firstTextComponent.fontSize = 40;
firstTextComponent.alignment = TextAnchor.MiddleCenter;
RectTransform rectTrans = textObjectOne.GetComponent<RectTransform>();
rectTrans.SetParent(canvas.transform, false);
// 定位到屏幕中心偏左位置
rectTrans.localPosition = new Vector3(-200f, 0f, 0f);
rectTrans.sizeDelta = new Vector2(400f, 100f);
}
}
```
这段脚本会在名为“Canvas”的游戏对象下创建一个新的`Text`实例,并设置其基本属性如颜色、大小以及定位等参数。
#### 插入第二个Text对象
紧接着按照相同方式构建另一组文字控件,仅调整部分配置使其区别开来:
```csharp
// 同样基于现有 Canvas 或者再次查找/创建它...
GameObject secondTextObj = new GameObject("SecondText", typeof(RectTransform), typeof(Text));
Text secondTextComp = secondTextObj.GetComponent<Text>();
secondTextComp.text = "This is Second Text"; // 修改显示的文字内容
secondTextComp.color = Color.blue; // 更改字体颜色至蓝色
secondTextComp.fontSize = 30; // 减少字号尺寸
secondTextComp.alignment = TextAnchor.MiddleRight;
RectTransform secRectT = secondTextObj.GetComponent<RectTransform>();
secRectT.SetParent(canvas.transform, false);
// 将此文本框放置于右侧适当的位置
secRectT.localPosition = new Vector3(200f, 0f, 0f);
secRectT.sizeDelta = new Vector2(400f, 80f);
```
通过这种方式可以在同一界面布局里展示两段不同风格的信息提示语句。
阅读全文
相关推荐

















