网站可信认证必须做,网站开发语言分析,极简wordpress,广州seo怎么做项目成果 项目网盘
导入资源包 放入Assets文件Assets资源文件 游戏流程分析
摄像机size调小#xff0c;让图片占满屏幕 人跑本质#xff0c;相对运动#xff0c;图片无限向右滚动 图片720#xff0c;缩小100倍第二个图片x为7.2每unit px100两张图片刚好挨着连贯 空对象Bg…项目成果 项目网盘
导入资源包 放入Assets文件Assets资源文件 游戏流程分析
摄像机size调小让图片占满屏幕 人跑本质相对运动图片无限向右滚动 图片720缩小100倍第二个图片x为7.2每unit px100两张图片刚好挨着连贯 空对象BgControl方便管理 reset 放两张图片 创脚本Bgcontrol拖到该对象上 层级-10 脚本文件夹,c#脚本 地面对象 层级-5 碰撞组件box collider 2d编辑碰撞器。 挂脚本 三个地面都拖成预设体 前两个地面固定后一个随机 Prefabs预设体文件夹 ground拖进去 coin进去 切片 多张 sprite editor 切片 应用 对象声音挂脚本 单例 创建groundcontrol脚本 脚本挂到地面对象上 预设体相当于类和对象 背景 -10 地面 -5地面预设体给标签ground 碰撞器 声音 挂脚本 动画 窗口 跑 跳 死亡 过渡 设置参数 无退出过渡0,isjump true 主角 层级10 标签player 碰撞组件 刚体组件 冻结旋转 重力缩放2只提供重力加速度加脚本跳跃地面上才能跳跃播放声音动画切换 button UI 原图像 原像素显示过渡 精灵切换 高亮图像 点击 玩家的跳跃 导航none 金币 脚本 碰撞器 吃的触发 桌子 放1号地面上 碰撞器 标签地面 预设体 1地应用所有 死亡 空对象die 碰撞器 编辑触发器 标签die player脚本 敌人 圆形碰撞器 1地 标签enemy 1地应用所有 预设体 触发 层级 切片
脚本代码
PlayerControl
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class PlayerControl : MonoBehaviour
{//血量public static int Hp1;//刚体组件private Rigidbody2D rbody;//动画组件private Animator ani;private bool isGround;void Start(){//获取刚体组件rbody GetComponentRigidbody2D();//获取动画组件ani GetComponentAnimator();}void Update(){//如果按了空格键if (Input.GetKeyDown(KeyCode.Space)){//跳跃Jump();}}//跳跃public void Jump(){if (isGround true){//给刚体一个向上的力rbody.AddForce(Vector2.up * 400);//播放跳跃声音AudioManager.Instance.Play(跳);}}//发生碰撞private void OnCollisionEnter2D(Collision2D collision){//判断如果是地面if(collision.collider.tagGround){isGround true;//结束跳跃ani.SetBool(IsJump, false);}//如果是死亡边界if(collision.collider.tagDie Hp 0){//血量为0Hp 0;////播放死亡声音AudioManager.Instance.Play(Boss死了);//播放死亡动画ani.SetBool(IsDie, true);}}//结束碰撞private void OnCollisionExit2D(Collision2D collision){//判断如果是地面if (collision.collider.tag Ground){isGround false;//开始跳跃ani.SetBool(IsJump, true);}}//如果碰到敌人private void OnTriggerEnter2D(Collider2D collision){if (collision.tag Enemy){//血量为0Hp 0;////播放死亡声音AudioManager.Instance.Play(Boss死了);//播放死亡动画ani.SetBool(IsDie, true);}}
}CoinControl
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class CoinControl : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){}//如果产生触发private void OnTriggerEnter2D(Collider2D collision){//播放吃金币的声音AudioManager.Instance.Play(金币);//销毁自己Destroy(gameObject);}
}AudioMnager
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class AudioManager : MonoBehaviour
{//单例public static AudioManager Instance;//播放组件private AudioSource player;void Start(){//单例Instance this;//获取播放组件player GetComponentAudioSource();}//播放音效public void Play(string name){//通过名称获取音频片段AudioClip clip Resources.LoadAudioClip(name);//播放player.PlayOneShot(clip);}
}BgControl
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class BgControl : MonoBehaviour
{//速度 每帧移动0.2像素public float Speed 0.2f;// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update() //update是每一帧会调用一次{//如果玩家血量为0if(PlayerControl.Hp0){return;}//遍历背景背景就是子物体foreach (Transform tran in transform){//获取子物体的位置Vector3 pos tran.position;//按照速度向左侧移动pos.x - Speed * Time.deltaTime; //每秒向左侧移动0.2//判断是否出了屏幕if (pos.x -7.2f){//把图片移动到右边pos.x 7.2f * 2;}//位置赋给子物体tran.position pos;}}
}GroundControl
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class GroundControl : MonoBehaviour
{//速度public float Speed 2f;//要随机的地面数组public GameObject[] GroundPrefabs;// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update() //update是每一帧会调用一次{//如果玩家血量为0if (PlayerControl.Hp 0){return;}//遍历背景背景就是子物体foreach (Transform tran in transform){//获取子物体的位置Vector3 pos tran.position;//按照速度向左侧移动pos.x - Speed * Time.deltaTime; //每秒向左侧移动0.2//判断是否出了屏幕if (pos.x -7.2f){//创建新的地面Transform newTrans Instantiate(GroundPrefabs[Random.Range(0, GroundPrefabs.Length)], transform).transform;
// 后transform确定父子关系 .后transform拿到新地面的transform组件//获取新地面的位置Vector2 newPos newTrans.position;//设置新地面的位置newPos.x pos.x 7.2f * 2;//位置设置回去newTrans.position newPos;//销毁旧的地面出了屏幕的地面Destroy(tran.gameObject);}//位置赋给子物体tran.position pos;}}
}