unity基础命令
获取所挂脚本元素的组件:
rd = GetComponent<Rigidbody>();
获取其他元素的组件:
rd = GameObject.Find("Player").GetComponent<Rigidbody>()
如果查找player下的子游戏物体的transform组件可继续find
Transform trans=GameObject("Player").transform.find(“zPlayer”)
transform.find查找子游戏物体的transform组件。
刚体组件加力效果:
private Rigidbody rd;
rd.AddForce(new Vector3(, , ));
键盘获取:
To read an axis use Input.GetAxis with one of the following default axes: "Horizontal" and "Vertical" are mapped to joystick, A
, W
, S
, D
and the arrow keys. "Mouse X" and "Mouse Y" are mapped to the mouse delta. "Fire1", "Fire2" "Fire3" are mapped to Ctrl
, Alt
, Cmd
keys and three mouse or joystick buttons. New input axes can be added in the Input Manager.
以上为api文档中的相关解释,可以通过unity中edit-project settings中进行相关修改。getaxis获取移动轴,获取按键则是getkeydown,入口参数为要按的keycode,返回值为bool。
float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
Transform组件:
Transform组件是每一个游戏物体必存在的属性,所以可以通过transform可以直接获取到脚本所在游戏物体的Transform组件,也可以用gameObject的find方法获取到相应组件,也可以定义一个public 的Transform组件字段,然后把相应组件拖入。在此多说一点采用rigidbody.vector和angularVelocity与rigidbody.translate和rotate产生的效果是一样的。
碰撞检测与触发检测:
关于碰撞检测和触发检测的具体定义可以查看api文档,在此只做一下简单说明以及注意事项。碰撞检测为两个物体相撞,会有相撞以后反弹的物理效果,其message void OnCollisionEnter(Collision collision)中入口参数为Collision,表示相撞事件,通过其可以获得与游戏物体相撞的Collider,继而获取其他参数,属性等。当设置为触发器时(即collider的isTriger勾选时)表示此物体不是实体,可以穿越,但是此物体定义了一个范围,当进入此范围时触发消息void OnTriggerEnter(Collider collider),其入口参数即为与游戏物体相撞的物体。
克隆物体:
if(Input.GetKeyDown(keycode))
{
GameObject.Instantiate(gameobject, trans.position, trans.rotation);
}
根据上述基础,贴几段小代码:
自毁:
void Start () {
Destroy(this.gameObject, time); }
打击物体:
void OnTriggerEnter(Collider collider)
{
//实例化特效
Instantiate(shellExplosion, transform.position, transform.rotation);
//炮弹自毁
Destroy(this.gameObject);
//击中物体毁灭
if(collider.gameObject.tag!="ground")
{
Destroy(collider.gameObject);
}
// Destroy(collider.gameObject);
}
子弹发射:
private Transform trans;
//游戏物体子弹
public GameObject shell;
public KeyCode key = KeyCode.Space;
// Use this for initialization
void Start () {
// 子弹初始位置对应的游戏物体
trans = transform.Find("FirePosition");
} // Update is called once per frame
void Update () {
if(Input.GetKeyDown(key))
{
//根据子弹初始位置对应的游戏物体,实例化子弹
GameObject GO= Instantiate(shell, trans.position, trans.rotation) as GameObject;
GO.GetComponent<Rigidbody>().velocity = GO.transform.forward * ;
} }
未完待续。。。。。。。。。。
unity基础命令的更多相关文章
- 【Linux相识相知】计算机的组成、linux发行版和哲学思想、基础命令和目录结构(FHS)
从今天开始,Frank将开始在博客上记录自己学习linux的点点滴滴,F初来乍到,还望各位大佬多多指教.本次博客的主要内容如下: 计算机基础:简要的描述了计算机的组成及其功能: linux初识:介绍了 ...
- 学习 git基础命令
缘起 年后到了新公司,由于个人意愿到了一个海外的项目组,除了自己从Java技术栈转了C#技术栈外,很多技术都是第一次使用,学习压力不小啊. 自己也就先从常用的技术开始学起,比如C#,AngularJS ...
- Linux安全基础:shell及一些基础命令
1.什么是shell?Shell是用户和Linux操作系统之间的接口.Linux中有多种shell,其中缺省使用的是Bash. 2.shell的分类(1)bash bash shell 是 Bourn ...
- LINUX二十个基础命令
LINUX二十个基础命令 一. useradd命令 1.命令格式: useradd 选项 用户名 2.命令功能: 添加新的用户账号 3.常用参数: -c comment 指定一段注释性描述.-d 目录 ...
- Docker - Docker基础命令及使用
Docker Docker - 官网 Docker - Hub GitHub - Docker Docker中文社区 Docker基础命令 Docker 查看帮助信息:docker --help 查看 ...
- vim基础命令
2015-06-04 by komilevim基础命令 打开一个文件 vim index.php 几种模式说明Normal Mode也就是最一般的普通模式,默认进入vim之后,处于这种模式.Inser ...
- linux学习之——基础命令
Linux体系基础命令: Linux是一个命令行组成的操作体系!精华在命令行,岂论图形界面成长到什么水平这个原理是不会变的,Linux命令有许多壮大的效用:从简单的磁盘操作.文件存取.到举办庞大的多媒 ...
- windows下使用redis,Redis入门使用,Redis基础命令
windows下使用redis,Redis入门使用,Redis基础命令 >>>>>>>>>>>>>>>> ...
- unity 基础之InputManager
unity 基础之InputManager 说一下unity中的InputManager,先截个图 其中Axes指的是有几个轴向!Size指的是有几个轴,改变Size可以添加或者减少轴! Name指 ...
随机推荐
- Git初始化项目 和 Gitignore
初始化init: git init git status git add . git commit -am "init projrct" 添加远程仓库: git remote ad ...
- gym102201E_Eat Economically
题意 给\(2n\)个物品,分别有\(a,b\)属性,对于\(i=1...n\),选择\(i\)个\(a\)属性和\(i\)个\(b\)属性,且每个物品只能作为一种属性的贡献,求最小的值. 分析 看了 ...
- 面试并发volatile关键字时,我们应该具备哪些谈资?
提前发现更多精彩内容,请访问 个人博客 提前发现更多精彩内容,请访问 个人博客 提前发现更多精彩内容,请访问 个人博客 写在前面 在 可见性有序性,Happens-before来搞定 文章中,happ ...
- Hadoop点滴-Hadoop的IO
Hadoop自带一套原子操作用于数据的I/O操作. 如果系统中需要处理的数据量达到Hadoop的处理极限时,数据被损害的概率还是很高的 检测数据是否被损害的常见措施是,在数据第一次被引进系统时,计算校 ...
- redis-分布式锁-消除竞争条件
因为信号量的设计过程中,获取一个信号量需要执行多个命令组成的流水,这样容易形成竞争条件. 为了消除信号量实现中所有可能出现的竞争条件,构建一个正确的计数信号量,需要在 信号量时,添加带有短暂超时时间的 ...
- mysql创建用户和权限管理
一 权限管理 我们知道我们的最高权限管理者是root用户,它拥有着最高的权限操作.包括select.update.delete.update.grant等操作.那么一般情况在公司之后DBA工程师会创建 ...
- 设计时数据源:在PostgreSql 数据查询中使用参数过滤
在上一篇文章中,我们学习了如何设计时连接PostgreSQL 数据库及环境搭建.本节我们来学习使用PostgreSql 数据源时,创建数据集时带参数过滤的查询语句写法. 在报表中包含两种参数,可参考博 ...
- Java 学习笔记之 Thread运行过程分析
Thread运行过程分析: 以下是一个最普通的Thread实现过程,我们今天就来看仔细分析下他是如何运行的. public class ThreadRunMain { public static vo ...
- 【Java基础】让编码不再让你困惑
目录 1. ASCII编码 2. Unicode编码 3. UTF-8编码 4. UTF8.UTF16和UTF32之间的区别 5. GBK.GB2312和GB18030之间的区别 6. Java中的编 ...
- 【linux】jdk安装及环境变量配置
登录linux后,切换目录到 /usr/local cd /user/local 在/usr/local目录新建文件夹java用于存放jdk文件 mkdir java 在文件夹java中下载jdk文件 ...