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

}

}

相关推荐
金銀銅鐵13 小时前
用 Pygame 实现 15 puzzle
python·数学·游戏
两水先木示3 天前
【Unity3D】小游戏启动优化、发热优化、蒙皮网格优化
游戏
资源分享助手3 天前
杀戮尖塔2下载、Slay the Spire 2中文版、卡牌肉鸽游戏、杀戮尖塔2联机、杀戮尖塔2攻略
游戏
叶帆3 天前
【YFIOs】用C#开发硬件之设备上云
开发语言·unity·c#
久数君3 天前
AI三维建模工具“造形家”:地理场景三维化的高效解决方案
unity·glb·ai算法·ai三维建模工具·地图框选·造形家·城市建筑模型
Swift社区3 天前
当 AI 接管游戏世界:鸿蒙游戏 Workspace Runtime 架构揭秘
人工智能·游戏·harmonyos
yyuuuzz3 天前
2026游戏云服务器推荐的技术判断思路
运维·服务器·开发语言·网络·人工智能·游戏·php
会思考的猴子3 天前
Unity VFX 属性 Postion 和 TargetPostion
unity
hai3152475433 天前
九章编程法 · 猜数字游戏 (GW-BASIC 重构版) *
人工智能·microsoft·游戏引擎·游戏程序
心前阳光4 天前
Unity资源导入之自动化资源导入
unity·自动化·游戏引擎