Unity3d创建物体,寻找物体,加载物体,添加脚本

GetCreateObject:

<span style="color: #0000ff">public <span style="color: #0000ff">class<span style="color: #000000"> GetCreateObject : MonoBehaviour {
GameObject emptyGo;
Light goLight;
GameObject goCamera;
<span style="color: #0000ff">public<span style="color: #000000"> Camera pCamera;
<span style="color: #0000ff">public<span style="color: #000000"> Transform goRoot;
Transform transLight;

GameObject tank;

</span><span style="color: #0000ff"&gt;void</span><span style="color: #000000"&gt; Start () {
    </span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt;创建物体:在当前场景中创建一个GameObject</span>
    emptyGo = <span style="color: #0000ff"&gt;new</span> GameObject(<span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;New</span><span style="color: #800000"&gt;"</span><span style="color: #000000"&gt;);

    </span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt;寻找物体:获取当前GameObject的Component</span>
    goLight = GetComponent<Light><span style="color: #000000"&gt;();
    goLight.color </span>=<span style="color: #000000"&gt; Color.red;

    </span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt;寻找物体:获取当前场景中其他GameObject</span>
    goCamera = GameObject.Find(<span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;Main Camera</span><span style="color: #800000"&gt;"</span><span style="color: #000000"&gt;);
    goCamera.transform.Translate(</span><span style="color: #800080"&gt;0</span>,<span style="color: #800080"&gt;1</span>,-<span style="color: #800080"&gt;9</span><span style="color: #000000"&gt;);

    </span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt;创建物体:通过public属性,在Unity中拖动控件的方式</span>
    pCamera.transform.Translate(<span style="color: #800080"&gt;0</span>,<span style="color: #800080"&gt;12</span><span style="color: #000000"&gt;);

    </span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt;寻找物体:通过工具方法找到物体</span>
    FindChild(goRoot,<span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;Light</span><span style="color: #800000"&gt;"</span>,<span style="color: #0000ff"&gt;ref</span><span style="color: #000000"&gt; transLight);
    transLight.GetComponent</span><Light>().color =<span style="color: #000000"&gt; Color.green;

    Debug.Log(</span><span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;Test</span><span style="color: #800000"&gt;"</span><span style="color: #000000"&gt;);

    </span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt;添加脚本:用代码方式创建GameObject并添加脚本</span>
    tank = <span style="color: #0000ff"&gt;new</span> GameObject(<span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;Tank</span><span style="color: #800000"&gt;"</span><span style="color: #000000"&gt;);
    tank.AddComponent</span><Tank><span style="color: #000000"&gt;();
}

</span><span style="color: #808080"&gt;///</span> <span style="color: #808080"&gt;<summary></span>
<span style="color: #808080"&gt;///</span><span style="color: #008000"&gt; 寻找物体
</span><span style="color: #808080"&gt;///</span> <span style="color: #808080"&gt;</summary></span>
<span style="color: #808080"&gt;///</span> <span style="color: #808080"&gt;<param name="trans"&gt;</span><span style="color: #008000"&gt;作为父物体的tranform</span><span style="color: #808080"&gt;</param></span>
<span style="color: #808080"&gt;///</span> <span style="color: #808080"&gt;<param name="findName"&gt;</span><span style="color: #008000"&gt;名称</span><span style="color: #808080"&gt;</param></span>
<span style="color: #808080"&gt;///</span> <span style="color: #808080"&gt;<param name="_trans"&gt;</span><span style="color: #008000"&gt;找到的物体</span><span style="color: #808080"&gt;</param></span>
<span style="color: #0000ff"&gt;void</span> FindChild(Transform trans,<span style="color: #0000ff"&gt;string</span> findName,<span style="color: #0000ff"&gt;ref</span><span style="color: #000000"&gt; Transform _trans)
{
    </span><span style="color: #0000ff"&gt;if</span><span style="color: #000000"&gt; (trans.name.Equals(findName))
    {
        _trans </span>=<span style="color: #000000"&gt; trans.transform;
        </span><span style="color: #0000ff"&gt;return</span><span style="color: #000000"&gt;;
    }
    </span><span style="color: #0000ff"&gt;if</span> (trans.childCount != <span style="color: #800080"&gt;0</span><span style="color: #000000"&gt;)
    {
        </span><span style="color: #0000ff"&gt;for</span>(<span style="color: #0000ff"&gt;int</span> i = <span style="color: #800080"&gt;0</span>,length = trans.childCount; i < length; i++<span style="color: #000000"&gt;)
        {
            FindChild(trans.GetChild(i),findName,</span><span style="color: #0000ff"&gt;ref</span><span style="color: #000000"&gt; _trans);
        }
    }
}

}

Tank:

<span style="color: #0000ff">public <span style="color: #0000ff">class<span style="color: #000000"> Tank : MonoBehaviour {

</span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt;加载物体:拖动方式得到预置体</span>
<span style="color: #0000ff"&gt;public</span><span style="color: #000000"&gt; GameObject goBullet;
</span><span style="color: #0000ff"&gt;private</span><span style="color: #000000"&gt; GameObject bullet;

</span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt;加载物体:用资源加载方式得到预置体,这种方式下资源要放在Assets/Resources文件夹下</span>
<span style="color: #0000ff"&gt;private</span><span style="color: #000000"&gt; GameObject mBullet;
</span><span style="color: #0000ff"&gt;private</span><span style="color: #000000"&gt; GameObject myBullet;

</span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt; Use this for initialization</span>
<span style="color: #0000ff"&gt;void</span><span style="color: #000000"&gt; Start () {
    mBullet </span>= Resources.Load(<span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;Bullet</span><span style="color: #800000"&gt;"</span>) <span style="color: #0000ff"&gt;as</span><span style="color: #000000"&gt; GameObject;
}

</span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt; Update is called once per frame</span>
<span style="color: #0000ff"&gt;void</span><span style="color: #000000"&gt; Update () {
    </span><span style="color: #0000ff"&gt;if</span> (Input.GetButtonDown(<span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;Fire1</span><span style="color: #800000"&gt;"</span><span style="color: #000000"&gt;))
    {
        </span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt;让预置体生成在场景中</span>
        bullet =<span style="color: #000000"&gt; Instantiate(goBullet);
        bullet.transform.parent </span>= <span style="color: #0000ff"&gt;this</span><span style="color: #000000"&gt;.transform;
    } </span><span style="color: #0000ff"&gt;else</span> <span style="color: #0000ff"&gt;if</span>(Input.GetButtonDown(<span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;Fire2</span><span style="color: #800000"&gt;"</span><span style="color: #000000"&gt;)) {
        myBullet </span>=<span style="color: #000000"&gt; Instantiate(mBullet);
        myBullet.transform.parent </span>= <span style="color: #0000ff"&gt;this</span><span style="color: #000000"&gt;.transform;
    }
}

}

Bullet:

<span style="color: #0000ff">public <span style="color: #0000ff">class<span style="color: #000000"> Bullet : MonoBehaviour {

Vector3 fwd;

</span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt; Use this for initialization</span>
<span style="color: #0000ff"&gt;void</span><span style="color: #000000"&gt; Start () {
    </span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt;向前向量</span>
    fwd =<span style="color: #000000"&gt; transform.TransformDirection(Vector3.forward);
}

</span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt; Update is called once per frame</span>
<span style="color: #0000ff"&gt;void</span><span style="color: #000000"&gt; Update () {
    </span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt;给一个向前的力,打出去</span>
    GetComponent<Rigidbody>().AddForce(fwd * <span style="color: #800080"&gt;1000</span><span style="color: #000000"&gt;);
}

}

参数如图:

相关文章

这篇文章将为大家详细讲解有关Unity3D中如何通过Animator动画...
这篇文章主要介绍了Unity3D如何播放游戏视频,具有一定借鉴价...
这篇文章给大家分享的是有关Unity3D各平台路径是什么的内容。...
小编给大家分享一下Unity3D如何实现移动平台上的角色阴影,希...
如何解析基于Unity3D的平坦四叉树地形与Virtual Texture的分...
这篇文章主要介绍Unity3D如何实现动态分辨率降低渲染开销,文...