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 ...
随机推荐
- 特殊权限的介绍 SGID SUID SBIT
Set UID 当s这个标志出现在文件所有者的x权限上时,如/usr/bin/passwd这个文件的权限状态:“-rwsr-xr-x.”,此时就被称为Set UID,简称为SUID.那么这个特殊权限的 ...
- PHP设计模式——适配器模式
<?php /** * 适配器模式 * 适配器模式是将某个对象的接口适配为另一个对象所期望的接口 * * 在需要转化一个对象的接口用于另一个对象时,最好实现适配器模式对象 */ class We ...
- 字符ASCII转换
实现效果: 关键知识: 实现代码: private void button1_Click(object sender, EventArgs e) { if (textBox1.Text != stri ...
- 学校管理系统C#(数据库、源码、演讲内容、ppt等)
该系统使用C#语言编程 在学院项目展获取第一名 git地址:https://github.com/weibanggang/schoolsystem
- MVC学习四:Razor视图语法
@{ Layout = null; } <hr /> <!DOCTYPE html> @this.GetType().Assembly.Location.ToString() ...
- Openresty最佳案例 | 第3篇:Openresty的安装
转载请标明出处: http://blog.csdn.net/forezp/article/details/78616645 本文出自方志朋的博客 我的服务器为一台全新的centos 7的服务器,所以从 ...
- 菜鸟笔记 -- Chapter 6.1 面向对象概述
6.1 面向对象概述 在程序开发的初期人们使用结构化开发语言,但是随着时间的流逝,软件的规模越来越庞大,结构化语言的弊端逐渐暴露出来,开发周期被无限制拖延,产品质量也不尽如人意,人们终于发现结构化语言 ...
- 数据库:DDL/DML/DCL/TCL基本概念
SQL(Structure Query Language)语言是数据库的核心语言 1. 数据查询语言DQL 数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE 子句组成的查询块: ...
- BZOJ2844: albus就是要第一个出场(线性基)
Time Limit: 6 Sec Memory Limit: 128 MBSubmit: 2054 Solved: 850[Submit][Status][Discuss] Descriptio ...
- JDBC编程:获取数据库连接
JDBC(Java Database Connectivity),即Java数据库连接.通过JDBC编程,可以使Java应用程序和数据库进行交互. JDBC驱动的方式有很多种,我们常用的驱动方式为:本 ...