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

}

}

相关推荐
achonor1 小时前
Unity UGUI Image使用图集透明度点击过滤BUG
unity·游戏引擎·bug
白山云北诗3 小时前
游戏盾是什么?重新定义游戏安全边界
安全·游戏·游戏盾推荐·游戏攻击
天涯过客TYGK4 小时前
Unity导出微信小游戏后无法调起移动端输入框
unity·微信·游戏引擎
高心星5 小时前
HarmonyOS 5.0应用开发——五子棋游戏(鸿蒙版)开发
游戏·harmonyos5.0·五子棋鸿蒙·鸿蒙游戏开发
雨月琉琉7 小时前
unity使用内建组件给刚体增加重力
unity·游戏引擎
Yuze_Neko7 小时前
Unity有限制状态机FSM
unity·游戏引擎
@正在学习驰骋的小马13 小时前
一、小白如何用Pygame制作一款跑酷类游戏(成品展示+添加背景图和道路移动效果)
python·游戏·pygame
虾球xz17 小时前
游戏引擎学习第216天
服务器·c++·学习·游戏引擎
郭逍遥21 小时前
[Godot] C#人物移动抖动解决方案
游戏引擎·godot
ForBigData1 天前
【杂谈】Godot 游戏开发:有限状态机
游戏·游戏引擎·godot·游戏程序·个人开发·游戏开发·游戏设计