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

}

}

相关推荐
I Am a robert girl6 小时前
从 GameHorizon 拆解多时间尺度游戏评测:数据管线、离线基准与在线回放的三层设计
数据库·游戏·多时间尺度·数据管线·游戏评测·离线基准·在线回放
大囚长7 小时前
AI意图预测与游戏全球同服对战的超光速零延迟探究
人工智能·游戏
2501_9151063212 小时前
Windows 上开发 Unity iOS,使用 KXBuild 进行真机调试、性能采样与打包 ipa
windows·vscode·unity·ios·个人开发·swift·敏捷流程
FFFFujige12 小时前
【Unity】一个的Dots用Ruhanka踩坑记录
unity·游戏引擎
qq36219670514 小时前
OBB 数据包是什么?大型游戏 APK 装完闪退的元凶(2026)
游戏
xiaolang_8616_wjl16 小时前
c++游戏_宝可梦大世界(源代码)
开发语言·c++·游戏
wgslucky16 小时前
Godot UI管理与使用
游戏引擎·godot
Oiiouui1 天前
Godot-GridGame架构屏幕UI层
架构·游戏引擎·godot
凯基迪科技1 天前
Unity游戏加密锁逆向方案、选型与攻防分析
游戏·unity·游戏引擎
Solange__1 天前
航天科普怎么用AI生成3D场景?从科学约束、尺度分层到网页展示的完整方案
图像处理·人工智能·游戏·3d·ai·自然语言处理·关卡设计