Unity C# 脚本常用方法

Unity C# 脚本常用代码

坐标位置相关
加载相关
UI操作相关
数学相关
编辑器相关

坐标相关

定位、旋转、缩放
# 设置到指定位置
transform.position = new Vector3(30, 0, 0)
# 在当前位置上在增加偏移(通常写在 Update, 并乘以 Time.deltaTime)
transform.Translate(2 * Time.deltaTime, 0, 0)

# 设置到指定旋转角度
transform.eulerAngles = new Vector3(30, 0, 0)
# 在当前角度上在增加角度(通常写在 Update, 并乘以 Time.deltaTime)
transform.Rotate(0, 2 * Time.deltaTime, 0)

# 缩放
transform.localScale = new Vector3(3, 3, 3)
游戏对象查找
# 通过名称查找
GameObject player = GameObject.Find("player");

# 通过 Tag 查找
GameObject player = GameObject.FindWithTag("player_tag");
世界坐标转屏幕坐标
// target 为物体对象(GameObject).
Camera.main.WorldToScreenPoint(target.gameObject.transform.position);
使用射线检测点击模型
private RaycastHit hit;

void Update() {
    if (Input.GetMouseButtonDown(0)) {
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;
       	// 使用 Physics.Raycast 时请确保模型包含碰撞体( collider ) 不然无法被检测.
        if (Physics.Raycast(ray, out hit)) {
            GameObject obj = hit.collider.gameObject;
			if (obj.tag.Equals("Player")) {
				//判断 obj 的 Tag 是否为玩家.
				
			}
        }
    }
}
获取鼠标所在的世界坐标
Vector3 screenPos = Camera.main.WorldToScreenPoint(transform.position);
Vector3 mousePosOnScreen = Input.mousePosition;
mousePosOnScreen.z = screenPos.z;
Vector3 vec = Camera.main.ScreenToWorldPoint(mousePosOnScreen);

加载相关
加载预制体
GameObject obj_1 = (GameObject)Resources.Load("Prefab/O_obj_1");
GameObject obj_2 = (GameObject)Resources.Load("Prefab/O_obj_2");
// 加载血条蓝条UI.
GameObject hpMpPanel = (GameObject)Resources.Load("Prefab/Hp_Mp_Panel");
// 实例化预制体.
GameObject hpMpPanelObj = GameObject.Instantiate(hpMpPanel);

UI操作相关
修改UI大小、位置等
// btn 为UI对象 (GameObject)
RectTransform rect = btn.GetComponent<RectTransform>();
// 设置位置
rect.anchoredPosition = new Vector3(100, 100, 0);
// 设置大小
rect.sizeDelta = new Vector2(145, 200);
Text获取文字所占宽度
GameObject obj = this.transform.Find("Text").gameObject;
Text text = obj.GetComponent<Text>();
// 获取文本所占宽度.
float textContentWidth = text.preferredWidth;

数学相关
随机数
# 创建 0-100 int 类型的随机数 (最小值为 0, 最大值为 100)
int r = Random.Range(0, 100)

# 创建 0-1 float 类型的随机数 (最小值为 0, 最大值为 1)
float r = Random.Range(0.0f, 1.0f)
Mathf
# 返回限制值, 限制 参数1 小于 参数2 时返回 参数2, 大于 参数3 时返回 参数3, 其他情况这返回 参数1
int a = Mathf.Clamp(10, 2, 5);	# 满足大于 参数3 条件, 返回 参数3 结果为: 5
int a = Mathf.Clamp(3, 2, 5);	# 满足其他情况, 返回 参数1 结果为: 3




编辑器相关

禁用动画位移

Animator 组件上 去掉 Apply Root Motion 选项

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值