kingBook

导航

统计

Unity 当使用 Instantiate() 创建实例时,在参数里定义父级与实例化后再设置父级的区别

设有:

  1. prefab:预制件, 默认的位置在(10,10,10)。
  2. parent:在场景中的游戏对象,位置在(20,20,20)。
  • 例1. 在参数里定义父级,会将实例直接旋转到父级,此时实例在父级内的局部坐标为(10,10,10),实例的世界坐标为(30,30,30)

    var inst = Instantiate(prefab, parent);
    
  • 例2.实例化后再设置父级(保持世界坐标系变换),会先将实例放置在当前激活的场景下,然后保持实例当世界坐标的位置转换父级,此时实例在父级内的局部坐标为(-10,-10,-10),实例的世界坐标为(10,10,10)

    var inst = Instantiate(prefab);
    
    inst.transform.parent = parent;
    // 或
    // inst.transform.SetParent(transform);
    // 或
    // inst.transform.SetParent(transform, true);
    
  • 例3. 实例化后再设置父级(不保持世界坐标系变换),此时与例1等效

    var inst = Instantiate(prefab);
    inst.transform.SetParent(transform,false);
    

posted on   kingBook  阅读(259)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2019-05-06 2.3 等差数列的前n项和
点击右上角即可分享
微信分享提示