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));
    }
}
 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/137913.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【开源分享】国内可用的免费安卓GPT语音助手 - 可音量键唤起,可联网

写在前面&#xff1a;这是一个我写的开源GPT语音助手&#xff0c;不收钱&#xff0c;只求Star! 简要介绍 这是一个基于ChatGPT的安卓端语音助手&#xff0c;允许用户通过手机音量键从任意界面唤起并直接进行语音交流&#xff0c;用最快捷的方式询问并获取回复 使用效果 一、基…

【码银送书第十期】《强化学习:原理与Python实战》

目录 1.什么是人工智能对齐 2.为什么要研究人工智能对齐 3.人工智能对齐的常见方法 1.什么是人工智能对齐 人工智能对齐&#xff08;AI Alignment&#xff09;指让人工智能的行为符合人的意图和价值观。 人工智能系统可能会出现“不对齐”&#xff08;misalign&#xff09;的…

.NET关于 跳过SSL中遇到的问题

一、事件的起因: 起因:开发项目过程中,可能会遇到 调用其他系统的接口 以及 代码中历史开发人员留下的IP接口访问等问题,后面该项目由自己负责,其他系统全部迁移到容器里面,只提供域名去访问。 问题:访问已迁移到容器其他系统,那么用IP地址访问肯定无法调用成功,只能用…

liunx的启动过程

1.国内的云服务器 腾讯云 阿里云 华为云 这些是vps 就是liunx远程 2.启动过程 内核的引导 操作系统 ---boot 系统 运行init sysv init centos5 配置文件 etc/inittab upstart init centos6 配置文件 etc/inittab systemd systemd centos7配置文件 …

Python(七) 元组

元组&#xff08;tuple&#xff09;与列表类似&#xff0c;但元组是不可变的&#xff0c;可简单将其看作是不可变的列表&#xff0c;元组常用于保存不可修改的内容&#xff0c;元组使用小括号 ( )&#xff0c;列表使用方括号 [ ]。 使用 访问 t (1024,0.5,Python,"Jav…

面试经典150题——Day37

文章目录 一、题目二、题解 一、题目 73. Set Matrix Zeroes Given an m x n integer matrix matrix, if an element is 0, set its entire row and column to 0’s. You must do it in place. Example 1: Input: matrix [[1,1,1],[1,0,1],[1,1,1]] Output: [[1,0,1],[0,…

Opencv for unity 下载

GitHub - EnoxSoftware/VideoPlayerWithOpenCVForUnityExample: This example shows how to convert VideoPlayer texture to OpenCV Mat using AsyncGPUReadback. OpenCV for Unity | Integration | Unity Asset Store

安卓常见设计模式12------观察者模式(Kotlin版、Livedata、Flow)

1. W1 是什么&#xff0c;什么是观察者模式&#xff1f;​ 观察者模式&#xff08;Observer Pattern&#xff09;是一种行为型设计模式&#xff0c;用于实现组件间的松耦合通信。主要对象有观察者接口&#xff08;Observer&#xff09;和可观察对象&#xff08;Observable&…

WPF ToggleButton 主题切换动画按钮

WPF ToggleButton 主题切换动画按钮 仿造最近看到的html中的一个效果&#xff0c;大致思路是文章这样&#xff0c;感觉还可以再雕琢一下。 代码如下 XAML: <UserControl x:Class"WPFSwitch.AnimationSwitch"xmlns"http://schemas.microsoft.com/winfx/200…

NFS服务器的搭建

架设一台NFS服务器&#xff0c;并按照以下要求配置 准备阶段&#xff1a;准备两台虚拟机&#xff0c;一台作为服务端&#xff0c;一台作为客户端 服务端&#xff08;Server&#xff09;&#xff1a;192.168.75.139 客户端&#xff08;Client&#xff09;:192.168.75.160 两…

密码学 - RSA签名算法

实验九 RSA签名算法- 一、实验目的 通过实验掌握GMP开源软件的用法&#xff0c;理解RSA数字签名算法&#xff0c;学会RSA数字签名算法程序设计&#xff0c;提高一般数字签名算法的设计能力。 二、实验要求 (1)基于GMP开源软件&#xff0c;实现RSA签名算法。 (2)要求有对应…

远程运维的定义以及优点详细讲解-行云管家

对于IT运维小伙伴而言&#xff0c;远程运维是最平常不过的一件事情了。比如下班了需要工作&#xff0c;可以远程运维就好了&#xff1b;比如帮助用户远程安装远程运维软件等等。今天我们就一起来简单聊聊远程运维的定义以及优点&#xff0c;顺便看看市面上哪款远程运维软件好用…

pytorch搭建squeezenet网络的整套工程(升级版)

上一篇当中&#xff0c;使用pytorch搭建了一个squeezenet&#xff0c;效果还行。但是偶然间发现了一个稍微改动的版本&#xff0c;拿来测试一下发现效果会更好&#xff0c;大概网络结构还是没有变&#xff0c;还是如下的第二个版本&#xff1a; 具体看网络结构代码&#xff1a…

Rust教程7:Gargo包管理、创建并调用模块

文章目录 cargo调用模块创建库调用库 Rust系列&#xff1a;初步⚙所有权⚙结构体和枚举类⚙函数进阶⚙泛型和特征⚙并发和线程通信 cargo cargo是Rust的包管理工具&#xff0c;兼具一些调试功能&#xff0c;在认识cargo之前&#xff0c;我们都是直接新建一个.rs文件&#xff…

python注释(快捷键)

首先介绍以下三种注释方式&#xff1a; # 123&#xff08;单行注释&#xff09; """123"""&#xff08;多行注释&#xff09; 123&#xff08;多行注释&#xff09; 下面介绍一下快捷键&#xff1a; Ctrl/ 注释单行&#xff1a;指针只要在这行代…

Unity Transform接口的几个常用方法解析_unity基础开发教程

Unity Transform接口常用方法解析 1. Transform.position2. Transform.right、Transform.forward、Transform.up3. Transform.Rotate4. Transform.Translate 在Unity中&#xff0c;Transform类是游戏对象位置、旋转和缩放的表示。在日常开发中我们回经常用到Transform接口的几个…

ZYNQ通过AXI DMA实现PL发送连续大量数据到PS DDR

硬件&#xff1a;ZYNQ7100 软件&#xff1a;Vivado 2017.4、Xilinx SDK 2017.4   ZYNQ PL 和 PS 的通信方式有 AXI GPIO、BRAM、DDR等。对于数据量较少、地址不连续、长度规则的情况&#xff0c;BROM 比较适用。而对于传输速度要求高、数据量大、地址连续的情况&#xff0c;比…

Azure 机器学习 - 使用自动化机器学习训练计算机视觉模型的数据架构

目录 一、用于训练的数据架构图像分类&#xff08;二进制/多类&#xff09;多标签图像分类对象检测实例分段 二、用于联机评分的数据架构输入格式输出格式图像分类&#xff08;二进制/多类&#xff09;多标签图像分类对象检测实例分段 在线评分和可解释性 (XAI) 的数据格式支持…

传输层中的TCP和UPD协议

一)应用层协议简介:根据需求明确要传输的信息&#xff0c;明确要传输的数据格式&#xff1b; 应用层协议:这个协议&#xff0c;实际上是和程序员打交道最多的协议了 1)其它四层都是操作系统&#xff0c;驱动&#xff0c;硬件实现好了的&#xff0c;咱们是不需要管 2)应用层:当我…

动态通讯录及程序保存在文件中

目录 一、结构体改造及增容函数 1.结构体部分 2.初始化函数及增容函数 二、信息添加及销毁和排序 1.信息添加函数&#xff08;Add&#xff09; 2.销毁函数&#xff08;Destroy&#xff09; 3.排序部分&#xff08;qsort&#xff09; 三、通讯录信息保存 1.保存在文件中…