2017-08-24 207 views
0

特定的场景脚本的特定部分我一直在寻找这2到3天,但无法找到任何解决方案。有没有办法写unity3d

我真正想要的是,将每个场景统一处理为github/bitbucket中的分支功能,以便我可以更改特定脚本中的代码行的某些部分,以针对不同的场景进行不同的工作。

如果我在游戏中更改场景,我希望我的游戏加载特定于此场景的脚本。

例如:有一个名为脚本,xyz.cs

如果我的游戏是玩SCENE1,在xyz.cs变化的一些代码行。 如果我的游戏正在播放scene2,xyz.cs中某些代码行的变化可能与上面的场景行不同。

基本上git的场景(作为分支)在我的游戏统一的分支功能。

谢谢。

+0

为什么不直接使用分支混帐?乍一看,这似乎是你过度复杂的问题。 –

+2

如果这不是一个关于版本控制的问题,并且你希望有一个类似的脚本有基于场景的稍微不同的实现,我会考虑使用一个抽象类或接口,并有一个类为每个场景继承它。 –

+0

如上所述,一个名为SceneAbstract的类具有抽象方法(和实现的),然后是子类,如Level1:SceneAbstract。 – Everts

回答

0

在git中管理统一项目是可以的。但无论是管理不同的分支每个场景,这取决于你的需要和情况:

  • 如果.cs文件中的每一个场景需要从时间更改时间,您可以管理不同的分支每个场景中的git和它将帮助您分别跟踪不同场景的每个版本。
  • 如果.cd文件对于每个场景都是不变的,您可以管理同一分支中的不同场景,并使用Sam在评论中所说的方式。

如果您管理不同分支中的每个场景,则应该为每个分支保留.cs文件的实体(不是脚本的一部分)。但您可以根据需要更改.cs文件。只要你想改变SCENE2 xys.cs文件基础上SCENE1文件xyz.cs

这样,你就可以使用下面的命令:

# On scene2 branch 
git checkout scene1 xyz.cs 
# the xyz.cs in scene2 branch will be same as scene1 
# change the part you want to modify 
git add . 
git commit -m 'change part of xyz.cs file in scene2 branch' 
+0

是的,谢谢,但我正在谈论自己在游戏中的相同场景。如果我在游戏中更改场景,应该加载新的更改后的脚本。我想在我的游戏中使用git分支功能来处理场景。 – djkp

+0

所以你的问题与使用git来版本控制统一无关,但是如何在场景改变后加载更新的脚本(你可以尝试使用脚本API解决问题)。你可以删除标签'版本控制'以便你的问题可以更好地描述和理解。 –