首页 > 代码库 > 第五次任务

第五次任务

1.安排

 

(4.2-4.8)

 

1、先把另一个小的模块:查看帮助,做出来,这是第二个场景。

2、设计情节初稿,之后还会根据需要修改

 

 

(4.9-4.15)

 

开始设计游戏主题模块:

1、先根据剧情写人物的脚本代码,包括玩家、非玩家、坏人。

2、简单的做点场景

 

 

(4.16-4.22)

 

完善上周的脚本,如果有错,那就排查,控制事件触发时机

 

 

(4.23-4.29)

 

因为我不会制作模型,所以这块得去网上查找资料,这周尽量把模型弄好,附上控制代码。可以完成基本的移动和事件触发

 

 

(4.30-5.6)

 

 

测试主体场景环境是否可以流畅运行,有错进行排错,如果有地方运行体验不好应该进行修改。

 

 

(5.7-5.12)

 

 

将所有的场景连接起来,设置好触发条件,并且要完整跑一遍,完成最后的测试。最后是要导出exe文件。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

2.本周研究内容

  (1)思路:由于现在没有找到相关的素材,只找到一些简单的素材,所以我调整了下思路,在想游戏中人物与人物之间需要设置碰撞体,这样才能系统判断,让人物进行攻击、对话等操作。于是,我做了一个小游戏测试相关的碰撞体测试,如果测试成功,在之后对人物的设置就可以依葫芦画瓢地将代码插入还可以照样子把设置都弄成一样的,只要对代码加入相关的按键触发攻击的几行就行了,因为现在没办法做攻击测试所以没有在测试游戏中放入攻击测试代码。

  (2)代码:

以下代码是游戏界面的UI代码:

using UnityEngine;
using System.Collections;

public class GAMEUI : MonoBehaviour {
    public GameObject Score;
    public GameObject Score1;
    public GameObject time;
    public GameObject score;
    public GameObject record;
    public int timelost = 60;
    public int scored = 0;
    public int recorded;
    // Use this for initialization
    void Start () {
        InvokeRepeating ("LostTime",0,1);
    }
    
    // Update is called once per frame
    void Update () {
        time.GetComponent<UILabel>().text = timelost.ToString();
        score.GetComponent<UILabel>().text = scored.ToString();
        record.GetComponent<UILabel>().text = recorded.ToString();
        Score1.GetComponent<UILabel>().text = scored.ToString();
        if (scored > recorded){
            PlayerPrefs.SetInt ("Record", scored);
            recorded = PlayerPrefs.GetInt ("Record");
        }
        else {
            recorded = scored;
        }
        recorded = PlayerPrefs.GetInt ("Record");
        if (timelost <= 0) {
            timelost = 0;
            Time.timeScale = 0;
            Score.SetActive(true);
        }
    }

    void OnTriggerEnter (Collider other) {
        if (other.gameObject.tag == "get") {
            scored = scored + 10;
            Destroy (other.gameObject);
        }
        if (other.gameObject.tag == "lost") {
            scored = scored - 10;
            Destroy (other.gameObject);
        }
    }

    void LostTime () {
        timelost--;
    }

    public void OnOver () {
        Application.LoadLevel("Over");
    }
}

以下是移动的代码:

using UnityEngine;
using System.Collections;

public class move : MonoBehaviour {
    public int v = 10;
    // Use this for initialization
    void Start () {
    
    }
    
    // Update is called once per frame
    void Update () {
        this.transform.Translate (Vector3.right * Time.deltaTime * v * Input.GetAxis("Horizontal"));
        if (this.transform.localPosition.x <= -520.0f){
            this.gameObject.GetComponent<Transform> ().localPosition = new Vector3 (-520.0f, -284.0f, 0f);

 


        }
        if (this.transform.localPosition.x >= 520.0f){
            this.gameObject.GetComponent<Transform> ().localPosition = new Vector3 (520.0f, -284.0f, 0f);
        }
        /*if (this.transform.localPosition.x >= -520.0f){
            if (Input.GetKey (KeyCode.A)) {
                this.gameObject.transform.Translate (Vector3.left * Time.deltaTime * v);
            }
        }
        if (this.transform.localPosition.x <= 520.0f){
            if (Input.GetKey (KeyCode.D)) {
                this.gameObject.transform.Translate (Vector3.right * Time.deltaTime * v);
            }
        }*/
    }
}

  (3)截图:

 

 技术分享

 


 

3.小结

  虽然这整体跟我的毕业设计没有关系,但是里面涉及很重要的碰撞体的代码和相关组件的设置,对我的设计是有帮助的,主要是因为没有找到素材,所以其实用这套素材做了这周的任务。

第五次任务