常用方法
查找物体
查找自身的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);
- 修改Sprite Renderer的sprite
public Sprite[] sprites; //精灵数组
int frameIndex = 0; // 精灵数组索引
this.GetComponent<SpriteRenderer>().sprite = sprites[frameIndex];
- 游戏对象实例化(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后执行
}
}
- 取消连续方法调用(CancelInvoke)
public void StopFire () {
CancelInvoke("Fire");
}
- unity3d中简单实现单例模式的方法(声明一个静态变量_instace,然后在Awake方法中赋值)
using UnityEngine;
using System.Collections;
public class GameManager : MonoBehaviour {
public static GameManager _instance;
void Awake () {
_instance = this;
}
}