• Object.Instantiate 实例


    static function Instantiate (original : Object, position : Vector3rotation : Quaternion) : Object

    Description描述

    Clones the object original and returns the clone.

    克隆原始物体并返回克隆物体。

    Clones the object original, places it at position and sets the rotation to rotation, then returns the cloned object. This is essentially the same as using duplicate command (cmd-d) in Unity and then moving the object to the given location. If a game object, component or script instance is passed, Instantiate will clone the entire game object hierarchy, with all children cloned as well. All game objects are activated.

    克隆原始物体,位置设置在position,设置旋转在rotation,返回的是克隆后的物体。这实际上在Unity和使用复制(ctrl+D)命令是一样的,并移动到指定的位置。如果一个游戏物体,组件或脚本实例被传入,实例将克隆整个游戏物体层次,以及所有子对象也会被克隆。所有游戏物体被激活。

    // Instantiates 10 copies of prefab each 2 units apart from each other
    //实例化10个 prefab拷贝,间隔2个单位
    var prefab : Transform;
    
    for (var i : int = 0;i < 10; i++) {
        Instantiate (prefab, Vector3(i * 2.0, 0, 0), Quaternion.identity);
    }

    Instantiate is most commonly used to instantiate projectiles, AI Enemies, particle explosions or wrecked object replacements.

    实例化更多通常用于实例投射物(如子弹、榴弹、破片、飞行的铁球等),AI敌人,粒子爆炸或破坏物体的替代品。

    // Instantiate a rigidbody then set the velocity
    //实例化一个刚体,然后设置速度
    var projectile : Rigidbody;
    
    function Update () {
        // Ctrl was pressed, launch a projectile
        //按Ctrl发射炮弹
        if (Input.GetButtonDown("Fire1")) {
            // Instantiate the projectile at the position and rotation of this transform
            //在该变换位置和旋转,实例化炮弹
            var clone : Rigidbody;
            clone = Instantiate(projectile, transform.position, transform.rotation);
    
            // Give the cloned object an initial velocity along the current object's Z axis
            //沿着当前物体的Z轴给克隆的物体一个初速度。
            clone.velocity = transform.TransformDirection (Vector3.forward * 10);
        }
    }

    Instantiate can also clone script instances directly. The entire game object hierarchy will be cloned and the cloned script instance will be returned.

    实例化也能直接克隆脚本实例,整个游戏物体层次将被克隆,并且返回被克隆脚本的实例

    // Instantiate a prefab with an attached Missile script
    //实例化一个附加在Missile脚本的预设
    var projectile : Missile;
    
    function Update () {
        // Ctrl was pressed, launch a projectile
        //按Ctrl发射炮弹
        if (Input.GetButtonDown("Fire1")) {
            // Instantiate the projectile at the position and rotation of this transform
            //在该变换位置和旋转,实例化projectile
            var clone : Missile;
            clone = Instantiate(projectile, transform.position, transform.rotation);
    
            // Set the missiles timeout destructor to 5
            //设置missiles超时5秒爆炸
            clone.timeoutDestructor = 5;
        }
    }

    After cloning an object you can also use GetComponent to set properties on a specific component attached to the cloned object.

    在克隆物体之后,你也可以使用GetComponent设置附加到克隆的物体特定组件的属性。

    • static function Instantiate (original : Object) : Object

    Description描述

    Clones the object original and returns the clone.

    克隆原始物体并返回克隆物体。

    This function preserves the position and rotation of the cloned object. This is essentially the same as using duplicate command (cmd-d) in Unity. If the object is aComponent or a GameObject then entire game object including all components will be cloned. If the game object has a transform all children are cloned as well. All game objects are activated after cloning them.

    这个函数保留被克隆物体的位置和旋转。这实际上等同于在Unity使用(duplicate)复制命令,如果物体是一个Component 或GameObject,整个游戏物体包含所有组件将被克隆,如果游戏物体有一个transform,所有子物体将被复制。所有游戏物体克隆之后被激活。

    // Instantiates prefab when any rigid body enters the trigger.
    // It preserves the prefab's original position and rotation.
    //当任何刚体进入触发器时实例化prefab
    //它保留prefab的原始位置和旋转
    var prefab : Transform;
    
    function OnTriggerEnter () {
        Instantiate (prefab);
    }

    Note that the Instantiate can clone any type of Object including scripts.

    注意,Instantiate(实例化)能克隆Object(物体)任何类型,包含script(脚本)。

  • 相关阅读:
    学习:组件生命周期(2)
    学习:组件生命周期(3)
    学习:深入分析布局文件(HelloWorld)
    wap webapp app区别
    TCP的数据传输
    SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON 详解
    未能加载文件或程序集“SqlServerDal”或它的某一个依赖项。系统找不到指定的文件。
    人生的十个不要等
    asp.net网站三层架构详解和反射知识
    工厂模式概况
  • 原文地址:https://www.cnblogs.com/vincentDr/p/3679658.html
Copyright © 2020-2023  润新知