Skip to main content

常用方法

查找物体

  • 查找自身的component

    GetComponent<名称>();

  • 查找非自身的物体,不限制层级,查到第一个

    GameObject.Find("物体");

  • 放在Resources文件夹下

    Resourcces.Load(物体名) as GameObject;

添加一个脚本

物体.AddComponent<名称>();

生成物体

Instantiate(物体);

向前移动

// 向前
Vector3 fwd;
fwd = transform.TransformDirection(Vector3.forward);

// 添加一个力
GetComponent<Rigidbody>().AddForce( fwd * 100 );

1.移动(用Translate方法进行移动)

int moveSpeed = 10; //移动速度
this.transform.Translate(Vector3.down * Time.deltaTime * moveSpeed);
  1. 修改Sprite Renderer的sprite
public Sprite[] sprites; //精灵数组
int frameIndex = 0; // 精灵数组索引

this.GetComponent<SpriteRenderer>().sprite = sprites[frameIndex];
  1. 游戏对象实例化(GameObject.Instantiate),及方法连续调用(InvokeRepeating)
using UnityEngine;
using System.Collections;

public class Gun : MonoBehaviour {

public float rate = 0.2f ; //子弹发射速率

public GameObject bullet; //子弹对象,bullet为预制物体

void Start () {
OpenFire ();
}

void Fire () { //实例化子弹
GameObject.Instantiate(bullet, this.transform.position, Quaternion.identity);
}

void OpenFire () {
InvokeRepeating("Fire", 1, rate); //重复调用Fire方法,1表示延迟1s后执行
}
}
  1. 取消连续方法调用(CancelInvoke)
public void StopFire () {
CancelInvoke("Fire");
}
  1. unity3d中简单实现单例模式的方法(声明一个静态变量_instace,然后在Awake方法中赋值)
using UnityEngine;
using System.Collections;

public class GameManager : MonoBehaviour {

public static GameManager _instance;

void Awake () {
_instance = this;
}

}