unity Instantiate实例化物体后出现scale改变

最近在做的东西大部分都要用到instantiate, 实例化某个prefab物体,实例化的物体若没有指定父物体,就会自动生成到根目录下。

这是出现了一个问题,当实例化物体后,更改parent值,这时,实例化物体的scale值会产生相应的改变

有两种解决办法

1、instantiate本身可以有父物体参数  Instantiate<T>(T original, Vector3 position, Quaternion rotation, Transform parent),

这样实例化出来的物体不会出现scale中的改变(因为没有在外部更改父物体,一次性成品,安全

1  Instantiate(twoDPreb, twoDPreb.transform.position, twoDPreb.transform.rotation, this.transform.Find("Panel").transform);

2、如果是实例化后,更改父物体导致scale值更改,也可以在下面更改实例化物体的localScale的值来更改其scale值

1  GameObject obj = Instantiate(twoDPreb, twoDPreb.transform.position, twoDPreb.transform.rotation);
2  obj.transform.SetParent(this.transform.Find("Panel").transform);
3  obj.transform.localScale = new Vector3(1, 1, 1);

原文地址:https://www.cnblogs.com/Small-Transparent/p/11022633.html

时间: 2024-11-10 01:03:56

unity Instantiate实例化物体后出现scale改变的相关文章

Unity Instantiate各函数执行顺序

GameObject go = Instantiate(aaa) ;        go.GetComponent<NewBehaviourScript>().Init(); Instantiate一个gameobject后,马上执行一个自定义的方法Init,经过测试发现顺序为Awake Init Start Update.

unity Instantiate设置父级物体bug

版本号 2018.3.5 2018.4.1 public class test : MonoBehaviour{ public Canvas canvas; void Start() { AssetBundle asset = AssetBundle.LoadFromFile("Assets/Scenes/00step.ld"); GameObject startPanel= asset.LoadAsset<GameObject>("StartPanel"

NGUI Sprite 和 Label 改变Layer 或父物体后 未更新深度问题

/// <summary> /// Auto-upgrade. /// </summary> protected override void OnInit () { Debug.Log("Chu SHiHua"); if (!mFillCenter) { mFillCenter = true; centerType = AdvancedType.Invisible; #if UNITY_EDITOR NGUITools.SetDirty(this); #endi

[Unity官方文档翻译]Primitive and Placeholder Objects Unity原生3D物体教程

Primitive and Placeholder Objects 原始的基础物体 Unity can work with 3D models of any shape that can be created with modelling software. However, there are also a number of primitive object types that can be created directly within Unity, namely the Cube, S

unity, 由于project settings中time scale变成0导致动画不播放

在Mac和iOS间多次switch platform之后,忽然发现开始scene的动画不播了.进入游戏后再切回来动画恢复正常. 检查了scene的逻辑,发现没有任何问题.删除了Temp和Library文件夹,不起作用. 试着删除了ProjectSettings文件夹后scene的动画恢复了.但是随便删除ProjectSettings肯定下不行的,所以如果不是ProjectSettings文件夹有bug的话,那一定是哪里设置错了或者改变了. 于是去菜单 edit->project settings

[转]Prefabs(预设)与 Instantiate(实例化)

解释:Prefabs(预设)是一种资源类型,可被重复使用的游戏对象.它可以被置入多个场景中,又或者能够在一个场景中被多次置入.当你在一个场景中增加一个Prefabs,你就实例化了一个Prefabs.所有Prefabs实例都是Prefab的克隆,只要Prefabs原型发生改变,所有的Prefabs实例都会产生变化. Prefabs的用法:如果大家要创建一些想要重复使用的东西,那么就该用到它了. 接下来我们写个小例子,看看如何使用它 1 搭建如下场景:一个地板,一个下落的立方体,调整摄像机的角度和位

android自定义控件实现TextView按下后字体颜色改变

今天跟大家分享一下Android自定义控件入门,先介绍一个简单的效果TextView,按下改变字体颜色,后期慢慢扩展更强大的功能 直接看图片             第一张是按下后截的图,功能很简单,也很容易实现,下面来看一下如何通过重写TextView来实现 一共三个文件  TextViewM.java,MainActivity.java,activity_textview.xml TextViewM.java 1 package landptf.control; 2 3 import and

继承CListCtrl后,可以改变行的颜色,程序出现错误。

http://www.cnblogs.com/rainbowzc/archive/2012/02/26/2369082.html 按照下面的写了程序之后,调试软件出现错误为: 错误是line:1120 mfc绘图时wingdi.cpp的ASSERT(m_hObject == NULL);句出错..求解释原因和这个wingdi是甚么 指定改变CListCtrl中某一行的颜色,比如说刚添加进去的一行,让它改变颜色,这样记录多了,容易看到自己刚刚加如的行,方便操作可查看,也可以让添加和修改的记录显示不

【Unity笔记】物体朝着鼠标位置移动

其实思路也很简单,就是先获取到鼠标的坐标,然后赋值给目标物体即可. void Update(){ // 物体跟随鼠标移动 Vector2 mousePos = Input.mousePosition; gameObject.transform.position = mousePos; } 这是物体即时改变位置的做法,如果想要物体朝鼠标位置缓慢移动(有过程时间),可以尝试用Vector2.Lerp().