调用其它组件中成员

  通过GameObject(游戏物体)。

  Base class for all entities in Unity scenes。  是Unity场景里面所有实体的基类。

  可以理解为两个类间的访问,定义一个超类用其中一个类实现。

  默认的gameObject为当前组件。transform为变换,有常用属性position(Vector3三维向量)。

  熟记transform下属性和方法作用。

transform.translate() 平移,给定vector3,给定坐标系'物体坐标系或者世界坐标系'。由于每秒执行60次,可以用Time.deltaTime(增量时间:以秒计算,完成最后一帧的时间)放慢。


让cube在n个点间转动:


using UnityEngine;
using System.Collections;

public class TransformTest : MonoBehaviour {

    // Use this for initialization
public Transform[] point ;//n个点,在unity中控制长度和gameobject
public Transform nextPoint ;//下一个要运动到的点
public int index ;//当前位置,用于求下一个要运动到的点
void Start () {
index = ;
nextPoint = point[] ;
} // Update is called once per frame
void Update () {
if(Vector3.Distance(transform.position, nextPoint.transform.position)>0.1f){//transform默认为当前物体,同gameObject
transform.Translate(Vector3.Normalize(nextPoint.position-transform.position)**Time.deltaTime, Space.World) ;//normalize,向量标准化
        //这里要用世界坐标系,用物体坐标系的话,在改变cube的Rotation后出错
}else{
index = (index+)%point.Length ;
nextPoint = point[index] ;
}
}
}
旋转,正角度为左手,负角度右手。transform.Rotate (new Vector3(0, -1, 0));

改变父物体的比例,子物体也会改变,比例不为1:1,移动父物体,子物体同样移动。(transform.parent,获取父物体的transform)

transform.position输出的是世界坐标系下的坐标位置,transform.localPosition为在父物体下物体坐标系的坐标位置。

定时重复调用可以使用InvokeRepeating函数实现, 启动0.5秒后每隔1秒执行一次 DoSomeThing 函数

  void Start() {
    InvokeRepeating("DoSomeThing", 0.5f, 1.0f);
  }

监控键盘:
  Input.GetKeyDown(KeyCode.W) KeyCode中包含键盘所有键位
  Input.GetKeyUp(KeyCode.W)
  Input.GetKey(KeyCode.W)  按下时一直执行
    对三种不同的动作监控
//        if(Input.GetKey(KeyCode.W)){
// transform.Translate(Vector3.forward) ;
// }
// if(Input.GetKey(KeyCode.S)){
// transform.Translate(-Vector3.forward) ;
// }
// if(Input.GetKey(KeyCode.A)){
// transform.Rotate(-Vector3.up);
// }
// if(Input.GetKey(KeyCode.D)){
// transform.Rotate(Vector3.up);
// }
等同 transform.Translate(new Vector3(, , Input.GetAxis("Vertical"))) ;
transform.Rotate(new Vector3(, Input.GetAxis("Horizontal"), )) ;//获取轴 edit/projectsetting/input

Time.timeScale 改变游戏运行速度,0为暂停游戏,暂停时update继续执行(FixedUpdate()下完全停止)。

     用Time.timescale加速或者减速时,在FixedUpdate()下使用。

GameObject.tag   标签
GameObject.layer 层
都可自定义

GameObject.FindGameObjectsWithTag  返回GameObject[]

GameObject.FindGameObjectWithTag  返回GameObject

若在脚本AScript里想要获取BScript里的变量,先获取BScript所在GameObject的实例

例:

    GameObject mainCarm = GameObject.FindGameObjectWithTag("MainCamera") ;

然后通过mainCarm找到BScript实例

    BScript bScript = (BScript)mainCarm.GetComponent("BScript") ;

这样就可以使用BScript里的所有公共变量和方法。

GameObject.SendMessage("方法名"); 若本身调用,搜寻同级所有GameObject,若其他object调用,搜寻该object中的此方法

 

gameObject, vector and transform的更多相关文章

  1. 【Unity3D游戏开发】GameObject.Find()、Transform.Find查找隐藏对象 (十)

    GameObjectFindTransformFind查找游戏对象 前置条件 相关API 1 GameObjectFind 2 TransformFind 3 其他查找 实际测试 即使隐藏root节点 ...

  2. GameObject.Find与Transform.Find的区别

    1.GameObject.Find 函数原型: public static GameObject Find(string name); 说明:1.GameObject只能查找到active的物体 2. ...

  3. Gameobject.Find和Transform.Find应用区别

    using UnityEngine;using System.Collections; public class test : MonoBehaviour{ private GameObject ro ...

  4. Unity GameObject.Find 和 transform.Find

    transform.Find(""); 找到子游戏对象,找自己找不到,能找到未激活的子游戏对象. 括号里可以是游戏对象的名字,也可以是层级. GameObject.Find(&qu ...

  5. Unity3D_06_根据Transform、GameObject和Tag获取子对象集合

    导引: 因为项目中难免要多次进行获取子对象或者子对象的集合,所以写一个单独的类,用来做这些操作.然后再实际的项目中,只需要使用 transform 或者 gameobject 调用这些方法就可以快速的 ...

  6. [CareerCup] 18.10 Word Transform 单词转换

    18.10 Given two words of equal length that are in a dictionary, write a method to transform one word ...

  7. Unity3D学习笔记——递归+非递归遍历GameObject的子物体

    在Unity3D中没有提供直接的方法获取某个GameObject的子GameObject,但是所有的GameObject都有transform对象,所以,一般是通过获取子GameObject的tran ...

  8. Unity中的各种寻找GameObject方法

    1.GameObject.Find():寻找Hierarchy面板中的activie 不为false的游戏对象: 路径如官方事例写法: public class ExampleClass : Mono ...

  9. unity中遍历Transform的子物体

    1.遍历Transform直接子transform private void Start() { var Equipment = building.transform.FindChild(" ...

随机推荐

  1. POJ 1195

    Mobile phones Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 13774   Accepted: 6393 De ...

  2. DOS终端不能使用JAVA命令

    DOS 终端 java 命令OK javac 命令OK java version  命令OK 写了小程序HelloWorld 测试 ,文件名HelloWorld.java public class H ...

  3. 安装JAVA JDK注意事项

    1 WIN8系统 安装JDK  我安装的是1.6版本,   64位的 : 2 安装好后  cmd  输入 java -version  正常 java  命令  正常 javac 命令不正常    提 ...

  4. 搭建高性能计算环境(四)、应用软件的安装之VASP

    1,将需要的软件包上传vasp.5.2.12.tar.gz.vasp.5.lib.tar.gz.benchmark.Hg.tar.gz. 2,创建vasp目录并解压软件包. mkdir /opt/va ...

  5. JQuery.tmpl()的用法

    动态请求数据来更新页面是现在非常常用的方法,现在通过Ajax请求返回的数据更多的是json对象, 为了解决js动态拼接数据这方面的问题,JavaScript 也可以利用模版来解决这些问题,比如基于 j ...

  6. mysql 5.7压缩包安装笔记

    转载请注明出处http://www.cnblogs.com/havedream/p/5075263.html 重装系统之后准备安装mysql,看到官网上有mysql 5.7.10可以下载就点了,然后就 ...

  7. Visual Studio 2010 更新NuGet Package Manager出错解决办法

    在Visual Studio 2010的扩展管理器中发现NuGet Package Manger有最新版本更新提示,选择更新安装提示以下错误信息: 2013/4/25 1:11:48 - Micros ...

  8. php全角字符转换为半角函数 实例代码

    PHP全角半角转换函数,把目前能找到的所有全角都列出来了一个个替换吧. 之前试过网上找的通过ASCII之类的字符替换,发现很多莫名其妙的问题.最后还是换成下面的字符替换方式了,把目前能找到的所有全角都 ...

  9. 入门级的PHP验证码

    参考了网上PHP 生成验证码很多是类封装了的,没有封装的验证码其实只是几个GD函数而已,初学者可以看看,可以尝试自己封装. <?php   session_start();      $im = ...

  10. 在xml中调用自己用java代码定义的View

    1.在res中new一个class继承view.View,重写ondraw方法,写出自己的view package com.zzw.myView; import android.content.Con ...