unity项目提交svn引用丢失

本文记录了一个在Unity开发中遇到的小bug:Behaviour上的引用脚本缺失问题。该问题仅在部分电脑上出现,通过对比meta文件确认非代码或文件问题。最终发现由于svn项目初始创建时未包含library,通过重新上传解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

The referenced script on this Behaviour is missing

综上,并非代码问题。

只有个别电脑出现所谓情况。

思索良久,比对meta文件里面的guid和md5都是相同。

故并非文件问题,上传文件并没有被篡改。

再查,原来 svn项目之初创建没有library。怀疑中。。。复传,解决。

                                                                               记----没多少技术含量的小bug,但费神费心

### 将现有 Unity 项目添加并提交SVN 仓库的方法 为了将现有的 Unity 项目成功导入到 SVN 服务器上的版本库中,可以通过以下方式实现完整的流程: #### 创建新的空版本库 首先需要在 SVN 服务器端创建一个新的空版本库,并确保该版本库具有适当的读写权限设置。这一操作通常由 SVN 管理员负责完成[^1]。 #### 检出空版本库 利用 TortoiseSVN 客户端从服务器检出刚刚建立好的空版本库至本地机器的一个特定目录下。此步骤将会生成一个包含隐藏 `.svn` 文件夹的新文件夹结构。 ```bash # 示例:从命令行检出空版本库 svn checkout http://your-svn-server/path/to/new-repository C:\local\project-folder ``` #### 添加 Unity 项目文件 把整个 Unity 工程复制粘贴进刚才通过 Checkout 得来的那个带有 `.svn` 隐藏文件夹的目标文件夹里去[^2]。注意不要遗漏任何重要组成部分,尤其是 Assets 和 Library 这两个核心文件夹。 #### 标记新增文件 右键单击目标文件夹内的所有待管理文件,在弹出菜单中选取 `TortoiseSVN -> Add` 来标记它们为即将加入版本控制的状态。这样做的目的是让 SVN 能够识别哪些是新引入的内容[^2]。 #### 提交变更 最后一步就是执行 Commit 行动了。再次右键点击目标文件夹,选择 `SVN Commit…`, 输入必要的日志消息描述此次提交的主要内容及其意义,仔细核对列表里的各项条目无误后按下 OK 键发送给远程服务器永久保存下来^。 --- ### 自定义自动化脚本辅助提交与更新 除了手动方式进行上述各环节外,还可以编写自定义 GUI 工具简化日常重复劳动量较大的任务。例如下面展示了一个简单的 Unity 编辑器窗口插件例子,它允许开发者一键触发 CS 类型源码的提交或拉取最新改动等功能[^3]: ```csharp using UnityEditor; public class SvnTool : EditorWindow { [MenuItem("GameTools/Svn工具")] public static void ShowWindow() { var w = GetWindow<SvnTool>(); w.titleContent.text = "SVN Tool"; w.Show(); } private void OnGUI() { if (GUILayout.Button("提交CS代码")) { ExecuteSvnCommand("/command:commit", "/logmsg:Auto commit by tool"); } if (GUILayout.Button("更新CS代码")) { ExecuteSvnCommand("/command:update"); } } private void ExecuteSvnCommand(string command, string logMsg = "") { string scriptsPath = $"{Application.dataPath}/Scripts"; System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo{ FileName="TortoiseProc.exe", Arguments=$"{command} /path:\"{scriptsPath}\" {(!string.IsNullOrEmpty(logMsg)?$"/logmsg:{logMsg} ":"")}/closeonend:0" }; System.Diagnostics.Process.Start(psi); } } ``` 以上代码片段展示了如何集成基本的 SVN 功能进入 Unity 开发环境中,方便快捷地管理和同步团队成员间的共同成果[^4]. --- ### 注意事项 - 在初次提交之前,请务必清理掉不必要的临时文件(如 obj/bin 文件夹),以免增加不必要的存储负担。 - 若遇到忽略某些类型文件的需求时,可适当调整 global-ignore 属性来过滤掉不需要跟踪的对象集合。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浪里独行

赏后联系2872235596

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值