Unity怎么彻底断开svn关联 vsprefab关联

Unity prefab实例属性不随预制源改变的问题 - 为程序员服务
Unity prefab实例属性不随预制源改变的问题
今天遇到一个修改了prefab源的属性后,prefab实例属性不随着改变的问题。
操作步骤:
在Unity Editor中创建prefab对象Player;
托一个Player的实例p1出来;
修改Player预制对象的z属性;
p1的z属性未跟着变;
在Unity组件手册中这么说的:
Inheritance 继承
Inheritance means that whenever the source Prefab changes, those changes are applied to all linked GameObjects. For example, if you add a new script to a Prefab, all of the linked GameObjects will instantly contain the script as well. However, it is possible to change the properties of a single instance while keeping the link intact. Simply change any property of a prefab instance, and watch as the variable name becomes bold. The variable is now overridden. All overridden properties will not be affected by changes in the source Prefab.
继承是指当预置源发生变化,这些变化将应用于所有已链接的游戏对象。例如,如果添加一个新的脚本到预置,所有已链接的游戏对象都将立刻包含该脚本。但是,它有可能改变一个单独实例的属性,同时保持链接。改变任何一个预置实例的属性,可以看到变量名称变为粗体,现在该变量可以被重写,所有的重写属性不会影响预置源的变化。
那么,p1.z应该随着Player.z改变才对。
把感悟揣进兜里,化作糖,与你分享!
原文地址:, 感谢原作者分享。
您可能感兴趣的代码阅读(23970)
本次教程,我们来创建一个简单的Prefab组件。
教程参考自人人素材翻译组出品的翻译教程《Unity游戏引擎的基础入门视频教程》。
说到Prefab,中文翻译为预设体,在Unity官方的书本《Unity4.X从入门到精通》中的解释是:可以理解为是一个游戏对象及其组件的集合,目的是使游戏对象及资源能够被重复使用。相同的对象可以通过一个预设体来创建,此过程可理解为实例化。
& & &存储在项目文件中(Project视图)的状态时,预设体作为一个资源,可应用在一个项目中的不同场景中。当拖动预设体到场景中就会创建一个实例。该实例与其原始预设体的有关联的,对预设体进行更改,实例会同步修改。Prefab可以提升资源的利用率和开发的效率。
& & &好比某个Prefab是我们创建好的一个标准的房间模型,当我们在场景中需要建立另一个房间的时候,不需要我们再手动的将地板,墙,天花板拼接,而是可以直接拖一个Prefab到Scene视图中,并对这个Prefab进行修改就可以了。
& & &下面开始创建我们的Prefab组件。接上一篇教程,现在我们场景内,有三个没有吻合的模型。如下图:
接下来我们把分别单击选中这三部分,并在Inspector视图中,找到Position,将他们的XYZ坐标都修改为0,0,0,
我们会发现模型会变为下图这样。
我们发现MineShaft_Wall中心在墙的中间,所以我们要修改下他的Y坐标。选中墙壁模型,将MineShaft_Wall墙壁模
型的Y坐标改为3就可以了,事实上这个模型墙壁高度为6个单位。
& & &这里要注意一下,如果你要单方向移动一个模型,即保持其他两个坐标值不变只改变一个坐标值,那么你就要按
住坐标系三个方向其中的一个并拖动就可以了。
接下来我们要做的是把现在位于中间的墙壁,移动到一侧,并复制几面墙移动到四周。直接拖动或者修改坐标可能
会产生各种误差,这里我们采用顶点捕捉(Vertex Snapping)。
& & & 我们首先选中我们要移动的物体,然后按下V,我们会发现当我们移动鼠标的时候坐标轴会只在模型中的顶点
停留。如下图,当你们鼠标挪到左下角的时候,会在左下方的定点出现坐标轴。
这时我们可以单击鼠标,选中这个顶点坐标轴处的正方形区域(如图中的黄色小正方形),拖动这个模型,可以让
这个顶点与下面我们鼠标挪到的另一个顶点结合。如下图,我选中这个顶点后,将其拖动至地板左下角的顶点上,
让这两个顶点相合。这是一个快捷的移动模型的方法。
接下来我们要借用这一面墙复制出另一面墙,并移动位置。我们选中我们刚移动的这面墙体,按下Ctrl+D(Mac下为
Command+D)来复制一下,我们会在Hierarchy视图下发现多了一个MineShaft_Wall,然后我们采取刚才同样的方
法,按下V,选取墙体的左下角坐标轴,拖到地板的右下角顶点,我们刚才复制的墙体就到已有墙体的对面。但是
我们前面提到过,我们的墙体不从正面看是看不到的,平移后我们相当于看到的是墙体的另一面,所以这里才会只
有一个坐标系而没有墙。如果我们稍微向右再挪动一点儿视角,就会看到我们复制出来的这面墙。
图一:未挪动视角
图二:挪动视角
我们要做的是把这面墙体旋转180度。选中这面墙,按下E,激活Rotate工具,坐标轴会发生如下变化:
这里我们按住绿色线确保Y轴角度不便,然后按住CTRL(Mac下按住Command)逆时针方向一直拖动,按住CTRL
是以15度为单位来旋转,旋转后我们会发现Inspector视图中,Y角度变成了-180(有时会是179.99),当然也可以
直接在Inspector视图额Rotation里面直接修改角度,要确保你修改的坐标轴是正确的。旋转完成后按W回归原始坐
&现在我们开始将这个模型放入一个Prefab组件中。先在Project视图内,ImportedAssets文件夹内新建Prefabs文件
夹,专门用来放置我们的预设体。
然后进入Prefabs文件夹,右键,Create,Prefab,将新建的空的Prefab命名为PFB_Straight。
下面我们将视线移动到Hierarchy视图中,我们可以看到四个蓝色名称,蓝色名称表明该物体是预设体或者从文件中
拖入到场景内的。现在要把物体放入Prefab中,我们可以发现当这些物体全部选中后是无法拖进我们新建的Prefab
中的。这里我们需要在Hierarchy中创建一个空的游戏物体------菜单栏,GameObject,Create Empty,这样Hierarchy
中会多出一个空的GameObject。我们对其命名为PFB_Straight,没错,和我们的Prefab名字相对应,并且现在这个
object的名称是白色的。下面我们来为此object与我们的四个物体建立父子关系,并将其导入到Prefab中。
选中全部四个物体,然后拖动到PFB_Straight中,会形成如图一的父子关系,接下来选中PFB_Straight,并拖入到
Project视图中我们新建的Prefab中,就完成了Prefab的初步创建,如图二。
& & &图二中,Hierarchy中物体全部变为蓝色,而且我们的Prefab在界面右下角有了预览,我们可以在预览中用鼠标
拖动来查看Prefab的内容。
至此,一个很简单的Prefab就创建好了,下面我们将这个组件拖入到场景中,我们会发现我们已经可以将我们之前
创建的组件很简单的假如场景中。这就是Prefab的优点,大大提高了工作的效率。
我们现在可以选中一个组件,按住V,并利用前面提到过的顶点捕捉(Vertex Snapping)来建立一个长长的隧道。
注意要选中整个组件,而不是组件的一部分,不要只把地板或者墙壁移动了,如果移动错了,记得按CTRL
(Command)+Z来取消操作。大家可以来试试创建一个隧道。
By Mr.Losers
阅读排行榜用粒子系统做了个爆炸效果,怎么把那些prefab销毁掉?【unity3d吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:76,758贴子:
用粒子系统做了个爆炸效果,怎么把那些prefab销毁掉?收藏
「猎聘网」互联网名企招聘,年薪30万起工作,「0加班」 互联网行业垂直招聘网
新手求讲解
求讲!!!
destroy(gameObject,5.0f); 写在 prefabs那个物体里脚本意思 5秒后销毁
重新做一个prefab,将爆炸粒子设置为子弹的子物体。这样,子弹被销毁时爆炸粒子也被销毁了     妹控创造世界,妹控毁灭世界,妹控拯救世界。妹控就是正义,我乃正义使者 
粒子有个destruct 选件,这是播放完就自己自毁的的bool变量。你在inspector界面好好找找。
写一个自毁代码,然后放爆炸里?
登录百度帐号推荐应用鏌ョ湅: 2715|鍥炲?: 5
unity宕╂簝锛氫粠svn涓婃洿鏂皃refab鍚庡穿婧}

我要回帖

更多关于 unity 取消prefab关联 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信