当前位置: 首页 > news >正文

Unity 跑酷游戏全部脚本(完结)

脚本1 触发器脚本 

这个脚本是主角身上的脚本,用于检测是否碰到其他触发器,并做出对应的行为 
 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ColliidisonTrigger : MonoBehaviour
{
    //触发检测  1.碰到金币克隆区,克隆金币 2.恐克隆怪物  3.碰撞金币 吃掉它 加分 4.碰到怪物,掉血 5碰到加速带加速、减速
    //该触发检测脚本挂到 主角身上
    //PlayerCont onePlayer = new PlayerCont();
  
    GameObject BeiPengObj;
    public GameObject MosterMuban;
    public GameObject CloneStruFather;

    public GameObject JInbiMUban;
    public GameObject JinbiFather;
    
    private void OnTriggerEnter(Collider other)
    {
          
           BeiPengObj = other.transform.gameObject;
        //如果碰到触发器,执行一次 
        Debug.Log("碰到了别人");
        if (BeiPengObj.tag == "MonsterTrigger")//碰到了怪物克隆区触发器
        {
            CloneMonster();

        }
        if (BeiPengObj.tag == "rCoinTrigger")//碰到了金币克隆区触发器
        {
            Debug.Log("kelongjinbi");
            CloneCoin();
        }


        if (BeiPengObj.tag == "TriggerSpeedUp")//碰到了加速区触发器
        {
            Debug.Log("开始加速");
            Speedup();
        }

        if (BeiPengObj.tag == "Coin")//碰到了金币触发器
        {
            Debug.Log("吃掉,消失金币,加分");
            Destroy(BeiPengObj);
            addScore();
        }

        if (BeiPengObj.tag == "Monster")//碰到了怪物障碍物
        {
            Debug.Log("掉血");
            ScoreManager.SubBlood(); //跨类访问并执行分数类里面的掉血函数    
        }
    }

    void CloneMonster()
    {
        for (int i = 0; i < 10; i++)
        {
            Vector3 ONETEMPPOS = new Vector3(156, 0, BeiPengObj.transform.position.z + 50f+i*3);
            Debug.Log("克隆怪物去");
            GameObject.Instantiate(MosterMuban, ONETEMPPOS, Quaternion.Euler(0, 0, 0), CloneStruFather.transform);
        }
    }
    void CloneCoin()
    {
        for (int i = 0; i < 10; i++)
        {
            Vector3 ONETEMPPOS = new Vector3(156, 0, BeiPengObj.transform.position.z + 50f + i * 3);
            Debug.Log("克隆怪物去");
            GameObject.Instantiate(JInbiMUban, ONETEMPPOS, Quaternion.Euler(0, 0, 0), JinbiFather.transform);
        }
    }
    void Speedup()
    {
        PlayerCont.RunSpeed = 20f;
    }

    void addScore()
    {
        ScoreManager.ScoreAdd();//跨类访问并执行分数类里面的加分函数
    }

   
}//end class

 

脚本2 分数管理脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ScoreManager : MonoBehaviour
{
    //分数管理 血量管理
    // 如果撞击到金币就加分,如果撞击到障碍物就掉血

    public static  int CurrentScore=0;
    public static int CurrentBlood = 10000;


    public static void ScoreAdd()
    {
        Debug.Log("加分函数开始执行");
        CurrentScore += 10;
        Debug.Log("分:"+CurrentScore);
    }


    public static void SubBlood()
    {
        Debug.Log("掉血函数开始执行");
        CurrentBlood -= 100;
        Debug.Log("血:" + CurrentBlood);
    }
    private void OnGUI()
    {
        Rect oneLableRec = new Rect(100, 100, 50, 50);
        GUILayout.Box(CurrentBlood.ToString(), GUILayout.Width(200), GUILayout.Height(50), GUILayout.ExpandWidth(false)); 
        // 创建另一个矩形框,背景色为红色,边框宽度为3像素
        GUILayout.Box(CurrentScore.ToString(), GUILayout.Width(200), GUILayout.Height(70), GUILayout.ExpandWidth(false));
        GUILayout.TextField("", GUILayout.Width(200), GUILayout.Height(50), GUILayout.ExpandWidth(false));
    }

}
 

脚本3 空物体移动的脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerCont : MonoBehaviour
{
    //Horizontal
    //1.控制玩家移动,input.getaix
    //2.A、D控制向左、右移动
    //3.W控制跳跃
    public GameObject Player;
    public float LRSPEED = 10F;
    public float JUMPSPEED = 5;
   
    public static float RunSpeed;

    private void Start()
    {
        RunSpeed = 10f;
    }
    private void Update()
    {
        UserInput();
 
    }
    //*=========================
  public  void UserInput()
    {
        //Debug.Log("检测用户按下的键盘A D W");
        float MoveZuoY = Input.GetAxis("Horizontal");
        ControlMove(MoveZuoY);
        
        if (Input.GetKey(KeyCode.W))
        {
            Jump();
        }
    }
    void ControlMove(float ZuoyouMove)
    {
        Player.transform.Translate(new Vector3(ZuoyouMove * LRSPEED * Time.deltaTime, 0, 0));

    }
   
    void Jump()
    {
        Player.transform.Translate(new Vector3(0, JUMPSPEED * Time.deltaTime, 0));
        //Debug.Log("角色开始移动了");
    }
    private void FixedUpdate()
    {
        AwalysRun();
    }
 void AwalysRun()
    {
        Player.transform.Translate(new Vector3(0, 0, 1 * RunSpeed * Time.deltaTime));
    }
}
 

 

相关文章:

  • SpringBoot项目集成发邮件功能
  • 【中间件篇-Redis缓存数据库07】Redis缓存使用问题及互联网运用
  • WorldView 1 2 3 4卫星影像
  • RHCE8 资料整理(五-2)
  • 使用Jmeter进行http接口性能测试
  • 不使用宝塔面板 安装 EasyImage 简单图床
  • ISP图像处理Pipeline
  • 爱上C语言:整型和浮点型在内存中的存储(进制转换,原码,反码,补码以及大小端)
  • maven配置自定义下载路径,以及阿里云下载镜像
  • 【Python+requests+unittest+excel】实现接口自动化测试框架
  • 【STM32】FreeModbus 移植Modbus-RTU从机协议到STM32详细过程
  • SQL之回炉重造
  • Linux命令(120)之tcpdump
  • C++——友元函数
  • wpf 命令概述
  • python3.6+scrapy+mysql 爬虫实战
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • [ JavaScript ] 数据结构与算法 —— 链表
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • JavaScript服务器推送技术之 WebSocket
  • python大佬养成计划----difflib模块
  • rabbitmq延迟消息示例
  • React 快速上手 - 07 前端路由 react-router
  • 不上全站https的网站你们就等着被恶心死吧
  • 飞驰在Mesos的涡轮引擎上
  • 基于遗传算法的优化问题求解
  • 开发基于以太坊智能合约的DApp
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 使用API自动生成工具优化前端工作流
  • 数据结构java版之冒泡排序及优化
  • 突破自己的技术思维
  • 新书推荐|Windows黑客编程技术详解
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​queue --- 一个同步的队列类​
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (二)换源+apt-get基础配置+搜狗拼音
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (六)软件测试分工
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (一)appium-desktop定位元素原理
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转)大道至简,职场上做人做事做管理
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • .mysql secret在哪_MySQL如何使用索引