Unity3d创建物体,寻找物体,加载物体,添加脚本
2017-05-07 10:10
351 查看
GetCreateObject:
Tank:
Bullet:
参数如图:
using UnityEngine; public class GetCreateObject : MonoBehaviour { GameObject emptyGo; Light goLight; GameObject goCamera; public Camera pCamera; public Transform goRoot; Transform transLight; GameObject tank; void Start () { //创建物体:在当前场景中创建一个GameObject emptyGo = new GameObject("New"); //寻找物体:获取当前GameObject的Component goLight = GetComponent<Light>(); goLight.color = Color.red; //寻找物体:获取当前场景中其他GameObject goCamera = GameObject.Find("Main Camera"); goCamera.transform.Translate(0, 1, -9); //创建物体:通过public属性,在Unity中拖动控件的方式 pCamera.transform.Translate(0, 1, 12); //寻找物体:通过工具方法找到物体 FindChild(goRoot, "Light", ref transLight); transLight.GetComponent<Light>().color = Color.green; Debug.Log("Test"); //添加脚本:用代码方式创建GameObject并添加脚本 tank = new GameObject("Tank"); tank.AddComponent<Tank>(); } /// <summary> /// 寻找物体 /// </summary> /// <param name="trans">作为父物体的tranform</param> /// <param name="findName">名称</param> /// <param name="_trans">找到的物体</param> void FindChild(Transform trans, string findName, ref Transform _trans) { if (trans.name.Equals(findName)) { _trans = trans.transform; return; } if (trans.childCount != 0) { for(int i = 0, length = trans.childCount; i < length; i++) { FindChild(trans.GetChild(i), findName, ref _trans); } } } }
Tank:
using UnityEngine; public class Tank : MonoBehaviour { //加载物体:拖动方式得到预置体 public GameObject goBullet; private GameObject bullet; //加载物体:用资源加载方式得到预置体,这种方式下资源要放在Assets/Resources文件夹下 private GameObject mBullet; private GameObject myBullet; // Use this for initialization void Start () { mBullet = Resources.Load("Bullet") as GameObject; } // Update is called once per frame void Update () { if (Input.GetButtonDown("Fire1")) { //让预置体生成在场景中 bullet = Instantiate(goBullet); bullet.transform.parent = this.transform; } else if(Input.GetButtonDown("Fire2")) { myBullet = Instantiate(mBullet); myBullet.transform.parent = this.transform; } } }
Bullet:
using UnityEngine; public class Bullet : MonoBehaviour { Vector3 fwd; // Use this for initialization void Start () { //向前向量 fwd = transform.TransformDirection(Vector3.forward); } // Update is called once per frame void Update () { //给一个向前的力,打出去 GetComponent<Rigidbody>().AddForce(fwd * 1000); } }
参数如图:
相关文章推荐
- Unity3D 创建新脚本自动添加文件名,作者,创建时间等
- Unity3d为物体添加/删除脚本
- Unity3D 创建脚本自动添加模板注释
- Unity3D: 脚本控制动态加载预设物体
- 如何阻止Unity3D把脚本自动添加到Component菜单中
- Unity3D脚本:隐藏GameObject子物体
- 编辑器中添加菜单以及菜单项 【unity3d脚本】
- 编辑器中添加菜单以及菜单项 【unity3d脚本】
- [Unity3D]如何给物体添加阴影效果
- Unity3D【脚本】把一个ui物体,对准世界坐标中的物体,可以实现例如血条等
- Unity3D基础学习 加载场景时隐藏物体,点击显示时显示物体
- Unity 3D 动态创建对象,并渲染贴图,动态添加删除脚本
- unity3d进行脚本资源打包加载
- MascotWorld例子:创建一个场景,添加物体并畅游世界
- unity3D C#脚本实现鼠标拖动物体
- unity3d 代码 添加和删除脚本,或者其他属性
- Unity3d C#脚本学习小结(九) [创建AssetBattle]
- unity3D C#脚本实现鼠标拖动物体
- < Unity 3D专栏 >动态创建对象,并渲染贴图,动态添加删除脚本
- unity3d进行脚本资源打包加载