zoukankan      html  css  js  c++  java
  • 第一个小游戏的开发过程,小球跑酷

    记录一下今天,自己的第一个小游戏完成了,心情很舒爽。非常非常简单的小游戏,下面梳理一下过程。

    首先创建跑道,使用cube,拉长等等。然后创建小球sphere,小球即为玩家(player,积累单词)。再添加障碍物,在分别为其上色。

    紧接着给小球添加脚本,让其能够受玩家控制

     1 using System.Collections;
     2 using System.Collections.Generic;
     3 using UnityEngine;
     4 using UnityEngine.SceneManagement;
     5 
     6 public class Player : MonoBehaviour
     7 {
     8     //初始速度
     9     public float speed = 10;
    10     //初始转弯速度
    11     public float turnSpeed = 4;
    12 
    13     // Start is called before the first frame update
    14     void Start()
    15     {
    16 
    17     }
    18 
    19     // Update is called once per frame
    20     void Update()
    21     {
    22         //按R键重玩,场景重置
    23         if (Input.GetKeyDown(KeyCode.R)){
    24             SceneManager.LoadScene(0);
    25             Time.timeScale = 1;
    26             //结束当前方法,防止一直掉下去
    27             return;
    28         }
    29 
    30         //获取坐标
    31         float x = Input.GetAxis("Horizontal");
    32         //给物体一个变化,即x轴会有一个转弯速度,y轴不变,z轴也有一个速度
    33         transform.Translate(x * turnSpeed * Time.deltaTime, 0, speed * Time.deltaTime);
    34 
    35         //判断位置,如果在范围之外,则让它有其他的运转动作
    36         if (transform.position.x < -4 || transform.position.x > 4)
    37             transform.Translate(0, -10 * Time.deltaTime, 0);
    38 
    39         //如果y轴小于-20,则停止
    40         if (transform.position.y < -20)
    41             Time.timeScale = 0;
    42 
    43 
    44     }
    45 }

    给小球添加刚体组件rigidbody,使其与障碍物barrier发生碰撞,也要给障碍物添加触发器trigger,创建barrier脚本

     1 using System.Collections;
     2 using System.Collections.Generic;
     3 using UnityEngine;
     4 
     5 public class Barrier : MonoBehaviour
     6 {
     7     // Start is called before the first frame update
     8     void Start()
     9     {
    10         
    11     }
    12 
    13     private void OnTriggerEnter(Collider other)
    14     {
    15         //debug测试是否发生碰撞
    16         Debug.Log(other.name + "碰到了我");
    17         //如果和自己碰撞的物体名称是player就停止
    18         if(other.name == "Player")
    19             Time.timeScale = 0;
    20 
    21     }
    22 }

    此时功能已经基本完成,在创建游戏通关完成UI,游戏开始时隐藏UI,触发是显示UI,创建一个物体将该脚本挂在上面,此物体放在小球跑道上。此物体也是触发器。

     1 using System.Collections;
     2 using System.Collections.Generic;
     3 using UnityEngine;
     4 
     5 public class Finish : MonoBehaviour
     6 {
     7     // Start is called before the first frame update
     8     void Start()
     9     {
    10         GameObject canvas = GameObject.Find("Canvas");
    11         canvas.transform.Find("Panel").gameObject.SetActive(false);
    12     }
    13 
    14     private void OnTriggerEnter(Collider other)
    15     {
    16         GameObject canvas = GameObject.Find("Canvas");
    17         canvas.transform.Find("Panel").gameObject.SetActive(true);
    18     }
    19 
    20 }
  • 相关阅读:
    世界企业家:创业者需知的8条创业逻辑
    比尔·盖茨的“机会”观——不追求机会,才会有机会
    我爱思佳(帮别人名字作诗)
    唐艺铭(帮别人名字作诗)
    我爱思佳(帮别人名字再作诗)
    优秀是一种习惯:智者五句话足以改变你的人生
    别了,我的情人
    李丽萍(帮别人名字作诗)
    Know GCS AND GES structure size in shared pool
    测试Exadata单个cell失败
  • 原文地址:https://www.cnblogs.com/lsy-lsy/p/11098492.html
Copyright © 2011-2022 走看看