美文网首页
Unity中简单的游戏逻辑

Unity中简单的游戏逻辑

作者: Dragon_boy | 来源:发表于2020-08-15 02:48 被阅读0次

    上一节我们解决了材质显示不当的问题,接下来完成漫游的游戏逻辑。

    开始之前,吐槽一下,个人笔记本电脑如果C盘预留空间不太够的话就不要玩大型场景了,最关键的是我电脑16G的内存被吃得满满的,死机了不知道多少次,不过总归是构建出了一个简单的项目,之后要修改的话大概是回学校用实验室里的工作站了,笔记本受不住啊!

    本身是想做一个漫游游戏,那么就做第一人称吧,苦于Unity开启大场景后编译速度很慢,很难安心地调试,我用的VS又很吃内存,我干脆直接用了现成的资源。直接asset store搜索standard assets导入,使用了里面的FirstPersonController。然后第一人称问题解决。

    如果是想要和角色动画结合在一起的话,可以自己制作动画或者找现成的资源。这里推荐一个网站:https://www.mixamo.com/
    该网站提供很多免费的角色,每个角色可以绑定许多动画,譬如静止不动、走、跑、跳等,比较适合动作不那么个性化的游戏制作。

    然后我加了一点后期处理效果。这里没有自己写shader,而是用了asset store里的现成的包,搜索post-processing volume,导入进来,找到PostProcessingBehaviour.cs脚本,赋予自己的摄像机即可,这和我们在Unity Shader那里学过的一样,基于屏幕后处理。然后新建一个Post-Processing Profile,


    里面提供了很多效果,可以满足大部分需求。

    然后弄了一个GUI,加了一个Button,这是我的开始界面:



    我的游戏界面:



    其实就是到处逛。

    主要脚本为,OnCameraSwitch:

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class OnCameraSwitch : MonoBehaviour
    {
        public GameObject camera1;
        public GameObject camera2;
        public GameObject canvas;
        // Start is called before the first frame update
        void Start()
        {
            camera1.SetActive(true);
            camera2.SetActive(false);
        }
    
        public void SwitchCamera()
        {
            camera1.SetActive(false);
            camera2.SetActive(true);
            canvas.SetActive(false);
        }
    }
    

    就是按开始按钮后切换摄像机,屏蔽UI等。

    然后让平行光随时间缓慢地转,为方便,加了个退出游戏的按钮:

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class LightChange : MonoBehaviour
    {
        public float speed = 0.1f;
        // Update is called once per frame
        void Update()
        {
            transform.Rotate(Vector3.right * speed * Time.deltaTime, Space.Self);
            if (Input.GetKey("escape"))
                Application.Quit();
        }
    }
    

    项目github地址:https://github.com/Dragon-Baby/GTAClone

    相关文章

      网友评论

          本文标题:Unity中简单的游戏逻辑

          本文链接:https://www.haomeiwen.com/subject/uneodktx.html