您现在的位置是:首页 >技术教程 >《创死小草》Unity制作(代码版)网站首页技术教程

《创死小草》Unity制作(代码版)

灸木 2025-03-28 00:01:07
简介《创死小草》Unity制作(代码版)

本文章只提供代码,资源请自行到资源商店挑选自己喜欢的模型,音乐,图片
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

主菜单
using UnityEngine;
using UnityEngine.SceneManagement;

///<summary>
///
///</summary>
public class changesc : MonoBehaviour
{
    public void cnm()//play按钮绑定的函数
    {
        Time.timeScale = 1;
        SceneManager.LoadScene("SampleScene");
    }
}
人物代码
using UnityEngine;
using UnityEngine.SceneManagement;

///<summary>
///
///</summary>
public class move : MonoBehaviour
{
    public float speed;
    public GameObject button;
 
    public void Update()//玩家移动
    {
        if(Input.GetKey(KeyCode.A))
        {
            this.transform.Translate(-speed*Time.deltaTime,0,0);
        }
        if(Input.GetKey(KeyCode.S)) { this.transform.Translate(0,0,-speed*Time.deltaTime); }
        if( Input.GetKey(KeyCode.D)) { this.transform.Translate(speed * Time.deltaTime, 0, 0); }
        if(Input.GetKey(KeyCode.W)) { this.transform.Translate(0,0,speed *Time.deltaTime);}
    }
    public void OnCollisionEnter(Collision collision)

    {
        if(collision.gameObject.tag=="enemy")//碰到敌人 就激活按钮
            {
 
            Destroy(gameObject,2);
            Time.timeScale = 0;
            button.SetActive(true);
            
        }

    }
    public void jk()//按钮绑定函数
    {
        Time.timeScale = 1;
        SceneManager.LoadScene("SampleScene");
    }
    public void cnm()//按钮绑定函数
    {
        Time.timeScale = 1;
        SceneManager.LoadScene("play2");
    }
}
敌人移动代码
using UnityEngine;

    ///<summary>
    ///
    ///</summary>
public class follow : MonoBehaviour
{
    public float speed;
    public GameObject GameObject;
    
    public void Update()
    {
        if (GameObject != null)
        {
            transform.LookAt(GameObject.transform.position);//朝着玩家沿着X轴移动
            transform.Translate(speed * Time.deltaTime, 0, 0);
        }
     
    }
}
using UnityEngine;

    ///<summary>
    ///
    ///</summary>
public class follow2 : MonoBehaviour
{
    public float speed;
    public GameObject GameObject;
    public void Update()
    {

        transform.LookAt(GameObject.transform.position);//敌人沿着玩家Y轴移动
        transform.Translate(0,0,speed * Time.deltaTime);
    }
}
第二关的UI
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;

///<summary>
///
///</summary>
public class ui : MonoBehaviour
{
    public Text Text;
    public int sum;
    public float time;
   public Text nm;
    public float timeup;
    public  static   bool jk=true;   

    public void Update()
    {
        time = time + Time.deltaTime;
        if (time>1)
        {
            sum++;
            time = 0;
        }
        Text.text = "存活时间:" + sum.ToString()+"   预期得分20分";
        if(sum>20)
        {
            
            Text.gameObject.SetActive(false);
            nm.gameObject.SetActive(true);
            timeup=timeup+Time.deltaTime;
            if(timeup>2) {
               
                SceneManager.LoadScene("play2");//两秒后切换场景
            }
           
           
        }
    }
}
第三关随机生成敌人代码
using UnityEngine;

    ///<summary>
    ///
    ///</summary>
public class create : MonoBehaviour
{
    public  GameObject GameObject;
    public Vector3 jk;
    public float time;
   private GameObject jkl;
    public GameObject player;
    public float speed;
    public void Update()
    {
        time += Time.deltaTime;
        if (time > 4f)//每四秒生成敌人
        {
            double op = Random.Range(-3.86f, 4.05f);
            double nm = Random.Range(-3.08f, 3.31f);
            jk = new Vector3((float)op, this.transform.position.y,(float)nm);

            jkl= Instantiate(GameObject, jk, Quaternion.identity);
            time = 0;
        }
        jkl.transform.LookAt(player.transform.position);//生成的敌人跟随玩家
        jkl. transform.Translate(0, 0, speed * Time.deltaTime);

    }
}

第三关的UI页面
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;

///<summary>
///
///</summary>
public class endui : MonoBehaviour
{
    public Text Text;
    public int sum;
    public float time;
    public GameObject button;
    public float timeup;


    public void Update()
    {
        time = time + Time.deltaTime;
        if (time > 1)
        {
            sum++;
            time = 0;
        }
        Text.text = "存活时间:" + sum.ToString() + "   预期得分20分";
        if (sum > 20)
        {
            
            button.SetActive(true);
            Time.timeScale = 0;
        
        }
    }
    public void nm()
    {
        Time.timeScale = 1; 
        SceneManager.LoadScene("menu");//回到第一场景
    }

}

本人小白,若有错误或者可以完善的地方都能私聊我哟!

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。