本节要点
1.金钱副本细节完善
1.主角战斗
①主角碰撞到 Box,Box 消失后,在消失的位置生成 1 枚金币;
②金币设置为触发器模式,且自身要不停的旋转;
③主角编写触发器处理代码,触发销毁金币。
2.SendMessage 消息发送
1.SendMessage 函数
gameObject.SendMessage(string):通知这个游戏物体身上的脚本文
件中的“指定方法”执行。
参数说明:
String:方法名,要执行的方法的名称;
2.完善金钱副本
①创建一个 GUIText 用于显示分数;
②给金币创建脚本,金币获取到 GUIText 组件的引用;
③在金币脚本中编写“增加分数”的函数;
④当金币销毁时,SendMessage 通知该“增加分数”函数执行。
关键代码
GoldRotate
public class GoldRotate : MonoBehaviour {
//让金币旋转
private Transform m_Transform;
//完善金币,让金币分数喜爱是出来;
private GUIText m_GUIText;
// Use this for initialization
void Start () {
//获取游戏对象组件
m_Transform=gameObject.GetComponent<Transform>();
//获取游戏对象 gui组件
// GameObject.Find("Score");//在别的脚本通过find的方法能找到这个游戏对象;
m_GUIText=GameObject.Find("Score").GetComponent<GUIText>();
}
// Update is called once per frame
void Update () {
m_Transform.Rotate(Vector3.forward,10f);//有重载的方法,注意调用的是那个 参数1:旋转的方向 参数2:旋转的角度
}
//让分数累加的方法; 因为金币消失时候给你发条消息通知你累计,所以必须是公开的;
int s = 0;//定义初始分数
public void AddScore() {
s = int.Parse(m_GUIText.text);//默认是字符串,必须强转 才能累加
//检查有没有打印
// Debug.Log(s);
s++;
m_GUIText.text = s.ToString();//(s++)+"";
}
}