Unity|游戏复刻}土豆兄弟1(C#)

创建场景
  1. 新建四个场景
    ![[Pasted image 20250126023836.png]]

  2. 打开构建配置文件
    ![[Pasted image 20250126023930.png]]

  3. 将新创建的四个场景依次添加到列表里
    ![[Pasted image 20250126024042.png]]

MainMenu主菜单
  1. 创建UI-图像
    ![[Pasted image 20250126024235.png]]

  2. 其中一个命名为BG背景,再复制一个命名为Botton按钮组
    ![[Pasted image 20250126024405.png]]

  3. 把BG和Botton的位置都调成0,0,0
    ![[Pasted image 20250126024740.png]]

  4. 给BG下面创建一个UI-图像
    ![[Pasted image 20250126024713.png]]

  5. 把背景1添加到源图像
    ![[Pasted image 20250126024905.png]]

  6. 点击设置原生大小,调整大小如图,把BG和Botton的Image勾掉,去掉白色图块
    ![[Pasted image 20250126025351.png]]

  7. 依次添加背景的四个部分
    ![[Pasted image 20250126030349.png]]

![[Pasted image 20250126030354.png]]

  1. 调整背景颜色,选中MainCamera,将颜色改为土黄色
    ![[Pasted image 20250126030925.png]]

  2. 创建Logo、人物、光圈,背景
    ![[Pasted image 20250126032545.png]]

主菜单动画
  1. 添加角色呼吸动画,选中Role,按下ctrl+6
    ![[Pasted image 20250126082153.png]]

  2. 创建一个Animations文件夹
    ![[Pasted image 20250126082247.png]]

  3. 点击创建,在Animations文件夹底下,Role.anim
    ![[Pasted image 20250126082433.png]]

  4. 点击录制
    ![[Pasted image 20250126111236.png]]

  5. 在0秒将Role变得瘦高,在1秒使变得矮胖
    ![[Pasted image 20250126111617.png]]

  6. 点击关闭录制,将第一帧的内容复制到第120帧
    ![[Pasted image 20250126111952.png]]

  7. 同理,给BGFront和BGBack添加左右移动动画,Front在240帧和480帧添加帧,使其从左向右再返回,Back正好相反
    ![[Pasted image 20250126112518.png]]

按钮设置
  1. 在Botton下面新建一个按钮
    ![[Pasted image 20250126155957.png]]

  2. 给Buttons再右边添加Vertical Layout Group组件
    ![[Pasted image 20250126160223.png]]

  3. 点击字体资产创建工具
    ![[Pasted image 20250126160732.png]]

  4. 点击创建字体
    ![[Pasted image 20250126160927.png]]

  5. 选中Text,在右边选择Alibaba字体
    ![[Pasted image 20250126161502.png]]

  6. 替换按钮的正常颜色为RGB8,7,8,文字颜色换为白色
    ![[Pasted image 20250126161638.png]]

  7. 复制出3个按钮
    ![[Pasted image 20250126162148.png]]

  8. 通过Vertical组件调整按钮间距
    ![[Pasted image 20250126162251.png]]

  9. 更改其他按钮的内容
    ![[Pasted image 20250126162445.png]]

按钮交互
  1. 新建一个Scripts文件夹,新建一个CommonButton脚本吗,将其挂载到四个按钮组件上
    ![[Pasted image 20250126164325.png]]
using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;

public class CommonButton : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
{
    private Image image;
    private TextMeshProUGUI text;

    private void Awake()
    {
        image = GetComponent<Image>();
        text = GetComponentInChildren<TextMeshProUGUI>();
    }

    public void OnPointerEnter(PointerEventData eventData)
    {
        image.color = new Color(255, 255, 255);
        text.color = Color.black;
    }

    public void OnPointerExit(PointerEventData eventData)
    {
        image.color = Color.black; 
        text.color = new Color(255, 255, 255);
    }
}

![[Pasted image 20250126165902.png]]

按钮跳转
  1. 将Button重命名为MainMneuPanel
    ![[Pasted image 20250201034507.png]]

  2. 创建一个同名脚本
    ![[Pasted image 20250201034631.png]]

using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;

public class MainMenuPanel : MonoBehaviour
{
    private Button startButton;
    private Button settingsButton;
    private Button progressButton;
    private Button exitButton;

    private void Awake()
    {
        startButton = GameObject.Find("StartButton").GetComponent<Button>();
        settingsButton = GameObject.Find("SettingsButton").GetComponent<Button>();
        progressButton = GameObject.Find("ProgressButton").GetComponent<Button>();
        exitButton = GameObject.Find("ExitButton").GetComponent<Button>();
    }

    // Start is called once before the first execution of Update after the MonoBehaviour is created
    void Start()
    {
        startButton.onClick.AddListener(() =>
        {
            SceneManager.LoadScene("02-LevelSelect");
        });
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

  1. 将其挂载到MainMenuPanel上
    ![[Pasted image 20250201040621.png]]

![[Pasted image 20250201042103.png]]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值