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

}

}

相关推荐
特立独行的猫a5 分钟前
用仓颉语言给娃写了个打字练习游戏:cj-tauri 项目实战
游戏·ui·框架·tauri·仓颉·cangjie·cj-tauri
辻弋20113 小时前
五年前的旅行视频糊成马赛克?Video2X用Real-ESRGAN逐帧重建细节,但只支持Windows、集显用户建议直接放弃
服务器·数据库·windows·游戏引擎·电脑
Martina_032121 小时前
AI生成3D场景导入 Unity/Unreal 后,NPC 总串层?用6步检查导航高度与跨层连接
人工智能·游戏·数学建模·3d·unity·自然语言处理·aigc
Nil2081 天前
leetcode 55跳跃游戏
算法·leetcode·游戏
小贺儿开发1 天前
Unity 局域网遥控幻灯片展示工具 3.0
科技·http·unity·工具·ppt·通信·网页
Nil2081 天前
leetcode 45跳跃游戏Ⅱ
算法·leetcode·游戏
外收内放2 天前
Python基础语法练习题(拓展1)
python·游戏
Martina_03212 天前
AI生成的过山车轨道导入后频繁脱轨?用5步检查样条、轨距与碰撞
图像处理·人工智能·游戏·3d·材质·游戏策划·关卡设计
Martina_03212 天前
AI生成的模块场景一烘焙就有黑边?用6步检查Lightmap UV、纹素密度与Padding
人工智能·游戏·3d·aigc·uv·游戏策划·关卡设计
狂野小白兔2 天前
AI游戏制作04——Codex 搭配 Godot MCP 全流程教程
人工智能·游戏·godot