ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Unity 游戏黑暗之光笔记第一章 完善场景

2021-05-19 16:05:34  阅读:159  来源: 互联网

标签:场景 void 第一章 public Unity 添加 alpha 之光 canvasGroup


Unity 游戏黑暗之光笔记
第一章 完善场景
1. 导入资地形、地貌资源,新建场景,导入地形、地貌prefab
2. 设置相机与视野匹配
选中主摄像机,点选菜单栏中GameObject > Align With View
3. 添加灯光
Direction light > Intensity 光照强度

 

 

 

4. 添加鼠标指针

  • File > Build Settings > Player Settings

 

 

 

 

 

 

5. 添加水面

 

 

 

6. 实现镜头缓慢拉近的效果

public float speed = 10;    //设置速度
private float endZ = -20;   //设置结束坐标
void Start () {    
    void Update () {
        //判断坐标小于结束坐标
        if (transform.position.z < endZ) {
            //还没有达到目标位置,需要移动
            transform.Translate( Vector3.forward*speed*Time.deltaTime);
        }
    }

7. 添加雾

  • Window > Rendering > Lighting Settings > other Settings

 

 

 

8. 使用UGUI和白色背景给场景添加渐显效果

    • 添加UI >image 给image添加Canvas Group 组件
      添加一个控制渐显的脚本,在主摄像头中添加方法,其他的动画效果类似这样制作 press的动画效果可以使用timeline制作。

UIFadeTest.Instance.UIShow();

    public float fadeSpeed = 10; //速度
    private CanvasGroup canvasGroup;
    private float alpha = 1.0f;
    private static UIFadeTest instance;
    //设置单例
    public static UIFadeTest Instance
    {
        get { return instance; }
    }
    void Start()
    {
        instance = this;
        canvasGroup = this.gameObject.GetComponent<CanvasGroup>();
    }
    // Update is called once per frame
    void Update()
    {
        if (alpha != canvasGroup.alpha)
        {
    canvasGroup.alpha = Mathf.Lerp(canvasGroup.alpha, alpha, fadeSpeed * Time.deltaTime);

            if (Mathf.Abs(canvasGroup.alpha - alpha) < 0.01f)
            {
                canvasGroup.alpha = alpha;
            }
        }
    }
      public void UIShow() {
        alpha = 0;
        canvasGroup.blocksRaycasts = false;
    }
}

9. 添加鼠标点击事件

在点击Press后显示按钮,先让newgame和loadgame按钮不激活
    private bool isAnyKeyDown = false;//表示是否有任何按键按下
    private GameObject buttonContainer;
    void Start()
    {
        buttonContainer = this.transform.parent.Find("buttonContainer").gameObject;
    }
    // Update is called once per frame
    void Update()
    {
        //判定没有按键按下
        if (isAnyKeyDown == false)
        {
            //如果按下显示案件
            if (Input.anyKey)
            {
                {
                    ShowButton();
                }
            }
        }
        //开始和加载按钮显示方法
        void ShowButton()
        {
            buttonContainer.SetActive(true);
            this.gameObject.SetActive(false);
            isAnyKeyDown = true;
        }
 }
newgame和loadgame按钮鼠标事件
  • 1 游戏数据的保存,和场景之间游戏数据的传递使用 PlayerPrefs
  • 2 场景的分类
    • 2.1 开始场景
    • 2.2 角色选择界面
    • 2.3 游戏玩家打怪的界面,就是游戏实际的运行场景
 //开始新游戏
    public void OnNewGame() {
        PlayerPrefs.SetInt("DataFromSave", 0); 
        // 加载我们的选择角色的场景 2
    }
    //加载已经保存的游戏
    public void onl oadGame() {
        PlayerPrefs.SetInt("DataFromSave", 1); //DataFromSave表示数据来自保存
        //加载我们的play场景3
    }

10. 给开始场景添加背景声音和按钮点击的声音

  • 在主摄像机添加BGM音乐

 

 在newgame和loadgame按钮上分别添加playsound脚本

 

标签:场景,void,第一章,public,Unity,添加,alpha,之光,canvasGroup
来源: https://www.cnblogs.com/heyu123/p/14785354.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有