获取所挂脚本元素的组件:

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基础命令的更多相关文章

  1. 【Linux相识相知】计算机的组成、linux发行版和哲学思想、基础命令和目录结构(FHS)

    从今天开始,Frank将开始在博客上记录自己学习linux的点点滴滴,F初来乍到,还望各位大佬多多指教.本次博客的主要内容如下: 计算机基础:简要的描述了计算机的组成及其功能: linux初识:介绍了 ...

  2. 学习 git基础命令

    缘起 年后到了新公司,由于个人意愿到了一个海外的项目组,除了自己从Java技术栈转了C#技术栈外,很多技术都是第一次使用,学习压力不小啊. 自己也就先从常用的技术开始学起,比如C#,AngularJS ...

  3. Linux安全基础:shell及一些基础命令

    1.什么是shell?Shell是用户和Linux操作系统之间的接口.Linux中有多种shell,其中缺省使用的是Bash. 2.shell的分类(1)bash bash shell 是 Bourn ...

  4. LINUX二十个基础命令

    LINUX二十个基础命令 一. useradd命令 1.命令格式: useradd 选项 用户名 2.命令功能: 添加新的用户账号 3.常用参数: -c comment 指定一段注释性描述.-d 目录 ...

  5. Docker - Docker基础命令及使用

    Docker Docker - 官网 Docker - Hub GitHub - Docker Docker中文社区 Docker基础命令 Docker 查看帮助信息:docker --help 查看 ...

  6. vim基础命令

    2015-06-04 by komilevim基础命令 打开一个文件 vim index.php 几种模式说明Normal Mode也就是最一般的普通模式,默认进入vim之后,处于这种模式.Inser ...

  7. linux学习之——基础命令

    Linux体系基础命令: Linux是一个命令行组成的操作体系!精华在命令行,岂论图形界面成长到什么水平这个原理是不会变的,Linux命令有许多壮大的效用:从简单的磁盘操作.文件存取.到举办庞大的多媒 ...

  8. windows下使用redis,Redis入门使用,Redis基础命令

    windows下使用redis,Redis入门使用,Redis基础命令 >>>>>>>>>>>>>>>> ...

  9. unity 基础之InputManager

    unity  基础之InputManager 说一下unity中的InputManager,先截个图 其中Axes指的是有几个轴向!Size指的是有几个轴,改变Size可以添加或者减少轴! Name指 ...

随机推荐

  1. Git初始化项目 和 Gitignore

    初始化init: git init git status git add . git commit -am "init projrct" 添加远程仓库: git remote ad ...

  2. gym102201E_Eat Economically

    题意 给\(2n\)个物品,分别有\(a,b\)属性,对于\(i=1...n\),选择\(i\)个\(a\)属性和\(i\)个\(b\)属性,且每个物品只能作为一种属性的贡献,求最小的值. 分析 看了 ...

  3. 面试并发volatile关键字时,我们应该具备哪些谈资?

    提前发现更多精彩内容,请访问 个人博客 提前发现更多精彩内容,请访问 个人博客 提前发现更多精彩内容,请访问 个人博客 写在前面 在 可见性有序性,Happens-before来搞定 文章中,happ ...

  4. Hadoop点滴-Hadoop的IO

    Hadoop自带一套原子操作用于数据的I/O操作. 如果系统中需要处理的数据量达到Hadoop的处理极限时,数据被损害的概率还是很高的 检测数据是否被损害的常见措施是,在数据第一次被引进系统时,计算校 ...

  5. redis-分布式锁-消除竞争条件

    因为信号量的设计过程中,获取一个信号量需要执行多个命令组成的流水,这样容易形成竞争条件. 为了消除信号量实现中所有可能出现的竞争条件,构建一个正确的计数信号量,需要在 信号量时,添加带有短暂超时时间的 ...

  6. mysql创建用户和权限管理

    一 权限管理 我们知道我们的最高权限管理者是root用户,它拥有着最高的权限操作.包括select.update.delete.update.grant等操作.那么一般情况在公司之后DBA工程师会创建 ...

  7. 设计时数据源:在PostgreSql 数据查询中使用参数过滤

    在上一篇文章中,我们学习了如何设计时连接PostgreSQL 数据库及环境搭建.本节我们来学习使用PostgreSql 数据源时,创建数据集时带参数过滤的查询语句写法. 在报表中包含两种参数,可参考博 ...

  8. Java 学习笔记之 Thread运行过程分析

    Thread运行过程分析: 以下是一个最普通的Thread实现过程,我们今天就来看仔细分析下他是如何运行的. public class ThreadRunMain { public static vo ...

  9. 【Java基础】让编码不再让你困惑

    目录 1. ASCII编码 2. Unicode编码 3. UTF-8编码 4. UTF8.UTF16和UTF32之间的区别 5. GBK.GB2312和GB18030之间的区别 6. Java中的编 ...

  10. 【linux】jdk安装及环境变量配置

    登录linux后,切换目录到 /usr/local cd /user/local 在/usr/local目录新建文件夹java用于存放jdk文件 mkdir java 在文件夹java中下载jdk文件 ...