Unity使用UI Toolkit开发操作界面

参考资料

开发推荐使用UI Toolkit(参考前端UXML、USS、C#):https://docs.unity3d.com/cn/current/Manual/UIE-simple-ui-toolkit-workflow.html

哔站视频:https://www.bilibili.com/video/BV1S52uBoEzn/?spm_id_from=333.337.search-card.all.click&vd_source=99a6eaca742b15de86f475c790efc6aa

查看示例代码

创建项目

Projects中添加Universal 2d(3d也能正常添加toolkit使用)即可

添加界面显示

添加给文件后鼠标左键双击可以打开进行编辑。

添加两种添加方式:(1)上方Window》UI Toolkit》UI Builder;(2)下发Project对应Assets中鼠标右键》Create》UI Toolkit》UI Document

Assets中添加

添加主界面配置

设定启动使用的界面文件

1、选中UIDocumant;

2、Assets中选中主界面对应文件拖动到Inspector的Source Asset中

3、Sort Order:控制不同 UI Document 间的层级(数值大在上)

添加使用C#脚本代码

添加文件夹

在下方Assets中鼠标右键》Create》Folder,添加后在Assets中正常显示文件夹,点击后可以重命名

添加C#文件

在下方Assets中到Scripts目录,鼠标右键》Create》MonoBehaviour Script,添加后的cs文件可以用vscode或记事本等其他软件打开编辑

添加按钮事件
using System;
using UnityEngine;
using UnityEngine.UIElements;

public class NewMonoBehaviourScript : MonoBehaviour
{
    [SerializeField] UIDocument uiDoc;
    private VisualElement root;
    
    // Start is called once before the first execution of Update after the MonoBehaviour is created
    void Start()
    {
        root = uiDoc.rootVisualElement;
        var playBtn = root.Q<VisualElement>("PlayBtn");
        playBtn.RegisterCallback<ClickEvent>(OnClickEvent);
    }

    // Update is called once per frame
    void Update()
    {
        
    }
    
    private void OnClickEvent(ClickEvent evt)
    {
        Debug.Log("Play Button Clicked");
    }
}

界面中鼠标右键更改名字,名称对应上面获取的PlayBtn

配置cs文件有效

如果启动时代码错误,在下方Project边上有个Console,里面看到对应错误描述,多次打印不重复显示,右边显示对应次数

双向绑定变量

新建文件

编辑该C#文件

using UnityEngine;

[CreateAssetMenu(fileName = "PlayerHealth", menuName = "Scriptable Objects/PlayerHealth")]
public class PlayerHealth : ScriptableObject
{
    public int health = 100;
}

添加对应Scriptable Objects后才能正常使用

在界面中绑定

C#使用vs开发管理

通过Unity生成(最简单)

  1. 在Unity中:Edit → Preferences → External Tools
  2. 确保 External Script Editor 设置为 Visual Studio 2022
  3. 关闭Preferences
  4. 菜单栏:Assets → Open C# Project
  5. Unity会自动生成 .sln 解决方案文件,并且已添加的C#文件会自动包含在该项目中

Unity使用C++开发

Unity无法直接执行C++代码,因为:

  • Unity使用Mono或IL2CPP运行C#代码
  • C++是原生代码,需要编译成特定平台的机器码
  • Unity的游戏逻辑层运行在托管环境中

通过P/Invoke(平台调用)技术 。C#作为桥梁,调用编译好的C++动态库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值