旧版UI控件 : NGUI UGUI OnGUI 界面扩展类似html和css
创建GUIText:创建空物体,空物体添加GUIText组件,Commponent-》Rendering-》GUIText
Text FontSize, Pixel Offset(位置) ,
GUITexture组件: 如文字
使用: Scale属性:全部设为 0.1
属性:Texture,
Pixel Inset像素设置: X 和Y 轴 设置图片 W H 宽度和高度
都是只能在game 视图设置
事件: OnMouseEnter()
Exit()
Down() 鼠标按下
private GUITexture m_GUITexture;
m_GUITexture.color=Color.blue; //灰色不影响图片本身颜色
特效组件:
TrailRenderer: Component-》Effects-》Trail Render
属性:材质球 ,Time(拖尾持续时间) ,开始和结束宽度
LineRenderer:
步骤:1创建空物体2给空物体添加 LineRenderer组件
粉红色为无材质球
属性:位置,开始宽度和结束宽度
声音组件:
AudioClip剪辑 .aif .wav .mp3 .ogg
在assets 下 创建Audios 文件夹
AudioSource
空游戏对象
Component-》Audio--》AudioSource
属性: audioclip :指明声音文件
play On Awake 在唤醒时播放
loop 单曲循环 mute 静音
volume 音量
常用函数:
private AudioSource m_AudioSource;
获取 ,play pause stop
AudioListener:声音侦听器(照相机身上有)
API实例化与销毁 :
实例化游戏物体:
gameObject.Instantiate(Object,Vector3,Quaternion)
通过脚本控制预制体:
先创建一个空物体,添加创建物体的脚本
public GameObject goPrefab; //然后拖拽就行
void Start()
{
Vector3 postion = new Vector3(Random.Range(-9.0f,9.0f), 10,Random.Range(-9.0f,9.0f ));
GameObject.Instantiate(goPrefab,position,Quaternion.identify)
}
给预制体添加脚本:
将预制体拖到场景中,然后添加脚本,然后删除场景物体,会发现预制体也会有脚本 ,然后 添加销毁场景物体 GameObject.Destroy(gameObject,Random.Range(5.0f,10.0f)) //定时销毁物体
Destroy() //立刻销毁
Invoke(string ,float) string函数名, float 秒数 //多少秒后执行某个函数【只一次】
InvokeRepeating(string ,float,float)
CancelInvoke()
Monobehavior 按下 F2 就可以转到 类定义
主角控制: 判断碰撞: 给预制体添加 标签
tag //
void OnCollisionEnter(Collision coll)
{
if(coll.gameObject.tag == "Box")
{
GameObject.Destroy(coll.gameObject);
}
}
8API之消息发送SendMessage:
将金币 变为触发器 勾选 触发器
通知游戏物体脚本上的方法执行
void AddScore()
{
int s = int.Parse(m_GUIText.text);
m_GUIText.text=(s+1).ToString();
}
9协程 Coroutine:
IEnumerator Task3()
{
yield return new WaitForSeconds(2);
Debug.Log("任务3")
}
调用: StartCoroutine("Task3")
StopCoroutine("Task3");
10 常用API 之脚本生命周期
有很多事件
场景中的物体,预制体的脚本都会自动执行
Awake()
OnEnable() //组件的禁用 启用
Start()
FixedUpdate()
Update()
LateUpdate() 在Update之后
OnGUI() 是update的2倍
OnDisable()
OnDestroy()