Unity3d创建物体,寻找物体,加载物体,添加脚本
GetCreateObject:
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(, , -);
//创建物体:通过public属性,在Unity中拖动控件的方式
pCamera.transform.Translate(, , );
//寻找物体:通过工具方法找到物体
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 != )
{
for(int i = , 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 * );
}
}
参数如图:





Unity3d创建物体,寻找物体,加载物体,添加脚本的更多相关文章
- 【Unity3D】Unity3D之 Resources.Load 动态加载资源
[Unity3D]Unity3D之 Resources.Load 动态加载资源 1.Resources.Load:使用这种方式加载资源,首先需要下Asset目录下创建一个名为Resources的文件夹 ...
- Unity3d Web3d资源的动态加载
Unity3d Web3d资源的动态加载 @灰太龙 参考了宣雨松的博客,原文出处http://www.xuanyusong.com/archives/2405,如果涉及到侵权,请通知我! Unity3 ...
- os引导程序boot 在根目录区寻找os加载程序文件loader 对应的根目录条目
[0]README 0.0) source code from orange's implemention of a os and for complete code , please visit h ...
- js动态创建的select2标签样式加载不上解决办法
js动态创建的select2标签样式加载不上:调用select2的select2()函数来初始化一下: js抛出了Uncaught query function not defined for Sel ...
- 【NGUI】Unity3D UIGrid 排序、动态加载与销毁
本帖最后由 Lucifer_H 于 2014-10-31 09:39 编辑 做 UIGrid 的动态加载是做游戏的装备列表时用到的,装备信息都是从后台发过来的,具体加载的代码如下: [C#] 纯文本查 ...
- KEngine:Unity3D资源的打包、加载、调试监控
资源模块做什么? 资源模块——ResourceModule,是KEngine中最核心的模块,其他模块基本或多或少的对它有依赖,它主要的功能是:资源打包.路径定义.资源管理.资源调试. 资源模块对Uni ...
- 从整体上理解进程创建、可执行文件的加载和进程执行进程切换,重点理解分析fork、execve和进程切换
学号后三位<168> 原创作品转载请注明出处https://github.com/mengning/linuxkernel/ 1.分析fork函数对应的内核处理过程sys_clone,理解 ...
- 如何用Swift创建一个复杂的加载动画
现在在苹果应用商店上有超过140万的App,想让你的app事件非常具有挑战的事情.你有这样一个机会,在你的应用的数据完全加载出来之前,你可以通过一个很小的窗口来捕获用户的关注. 没有比这个更好的地方让 ...
- Swift微博项目--Swift中通过类名字符串创建类以及动态加载控制器的实现
Swift中用类名字符串创建类(用到了命名空间) OC中可以直接通过类名的字符串转换成对应的类来操作,但是Swift中必须用到命名空间,也就是说Swift中通过字符串获取类的方式为NSClassFro ...
随机推荐
- 「bzoj3956: Count」
题目 刚开始并没有看懂题意于是痛苦的挣扎了好久 题意是这样的 问\([l,r]\)有多少对\((i,j)\)满足\(a_i\)和\(a_j\)恰好是\(a_i...a_j\)中严格最大的两个数 强制在 ...
- 【[USACO16OPEN]262144】
发现这个数列的范围特别大但是值域的范围特别小 于是可以大胆猜测这道题值域肯定需要开到状态里去 又发现\(262144=2^{18}\)这个暗示非常明显啊,暗示这道题跟二进制有关系 其实也没什么关系 设 ...
- Windows后门小计
嗅探欺骗: 在目标机上安装嗅探工具窃取管理员的密码 放大镜替换: 构造批处理: @echo off net user gslw$ test168 /add net localgroup adminis ...
- 论文翻译:XNOR-Net: ImageNet Classification Using BinaryConvolutional Neural Networks
目录 Abstract 1 Introduction 2 Related Work 3 Binary Convolutional Neural Network 3.1 Binary-Weight-Ne ...
- Blog 使用Jsoup解析出html中的img元素
Jsoup主页:http://jsoup.org/ 在Blog.java 加入 private List<String> imageList=new LinkedList<Strin ...
- UliPad安装
1 http://www.cnblogs.com/dolphin0520/p/4012804.html 2 http://www.iplaypython.com/editor/ulipad.html
- MVC5 Attribute(特性)
AuthorizeAttribute:一般用来判断权限 ActionFilterAttribute:方法执行前后动作 OutputCacheAttribute:输出缓存设置 注:我们创建名称的时候请带 ...
- Rman 管理 archivelog 的命令
因为archivelog的相关信息是记录在controlfile中的,当物理删除后不会改变controlfile的设置.并且在查询相关的动态视图(例如v$archived_log)时,该部分日志仍然标 ...
- 浅谈箭头函数和setTimeout中的this
箭头函数会改变this的指向,这个大家看文档都看到过,可是有没有具体理解呢?我发现自己应该可能大概是......emmmm,然后我整理了一遍,加强一下概念吧顺带再讲一下setTimeout这个函数改写 ...
- Angularjs基础(六)
AngularJS HTML DOM AngularJS为HTML DOM 元素的属性提供了绑定应用数据的指令. ng-disabled指令 ng-disabled指令直接绑定应用数据到HTML的di ...