zoukankan      html  css  js  c++  java
  • 见缝插针

    程序管理代码(GameManager)

     1 using System.Collections;
     2 using System.Collections.Generic;
     3 using UnityEngine;
     4 using UnityEngine.UI;
     5 using UnityEngine.SceneManagement;
     6 
     7 public class GameManager : MonoBehaviour {
     8 
     9     private Transform startPoint;
    10     private Transform spawnPoint;
    11     private Pin currentPin;
    12     private bool isGameOver = false;
    13     private int score = 0;
    14     private Camera mainCamera;
    15 
    16     public Text scoreText;
    17     public GameObject pinPrefab;
    18     public float speed = 3;
    19 
    20 
    21 
    22     // Use this for initialization
    23     void Start () {
    24         startPoint = GameObject.Find("StartPoint").transform;
    25         spawnPoint = GameObject.Find("SpawnPoint").transform;
    26         mainCamera = Camera.main;
    27         SpawnPin();
    28     }
    29 
    30     private void Update()
    31     {
    32         if (isGameOver) return;
    33         if (Input.GetMouseButtonDown(0))
    34         {
    35             score++;
    36             scoreText.text = score.ToString();
    37             currentPin.StartFly();
    38             SpawnPin();
    39         }
    40     }
    41 
    42     void SpawnPin()
    43     {
    44         currentPin = GameObject.Instantiate(pinPrefab, spawnPoint.position, pinPrefab.transform.rotation).GetComponent<Pin>();
    45     }
    46 
    47     public void GameOver()
    48     {
    49         if (isGameOver) return;
    50         GameObject.Find("Circle").GetComponent<RotateSelf>().enabled = false;
    51         StartCoroutine(GameOverAnimation());
    52         isGameOver = true;
    53     }
    54 
    55     IEnumerator GameOverAnimation()
    56     {
    57         while (true)
    58         {
    59             mainCamera.backgroundColor = Color.Lerp(mainCamera.backgroundColor, Color.red, speed * Time.deltaTime);
    60             mainCamera.orthographicSize = Mathf.Lerp(mainCamera.orthographicSize, 4, speed * Time.deltaTime);
    61             if( Mathf.Abs( mainCamera.orthographicSize-4 )<0.01f)
    62             {
    63                 break;
    64             }
    65             yield return 0;
    66         }
    67         yield return new WaitForSeconds(0.2f);
    68         SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
    69     }
    70 }

    针程序(Pin)

     1 using System.Collections;
     2 using System.Collections.Generic;
     3 using UnityEngine;
     4 
     5 public class Pin : MonoBehaviour {
     6 
     7     public float speed = 5;
     8     private bool isFly = false;
     9     private bool isReach = false;
    10     private Transform startPoint;
    11 
    12     private Vector3 targetCirclePos;
    13     private Transform circle;
    14 
    15 
    16     // Use this for initialization
    17     void Start () {
    18         startPoint = GameObject.Find("StartPoint").transform;
    19         circle = GameObject.FindGameObjectWithTag("Circle").transform;
    20         targetCirclePos = circle.position;
    21         targetCirclePos.y -= 1.55f;
    22         //circle = GameObject.Find("Circle").transform;
    23     }
    24 
    25     // Update is called once per frame
    26     void Update () {
    27         if (isFly == false)
    28         {
    29             if (isReach == false)
    30             {
    31                 transform.position = Vector3.MoveTowards(transform.position, startPoint.position, speed * Time.deltaTime);
    32                 if (Vector3.Distance(transform.position, startPoint.position) < 0.05f)
    33                 {
    34                     isReach = true;
    35                 }
    36             }
    37         }
    38         else
    39         {
    40             transform.position = Vector3.MoveTowards(transform.position, targetCirclePos, speed * Time.deltaTime);
    41             if(Vector3.Distance( transform.position,targetCirclePos) < 0.05f)
    42             {
    43                 transform.position = targetCirclePos;
    44                 transform.parent = circle;
    45                 isFly = false;
    46             }
    47         }
    48     }
    49 
    50     public void StartFly()
    51     {
    52         isFly = true;
    53         isReach = true;
    54     }
    55 }

    针头程序(PinHead)

     1 using System.Collections;
     2 using System.Collections.Generic;
     3 using UnityEngine;
     4 
     5 public class PinHead : MonoBehaviour {
     6 
     7     private void OnTriggerEnter2D(Collider2D collision)
     8     {
     9         if (collision.tag == "PinHead")
    10         {
    11             GameObject.Find("GameManager").GetComponent<GameManager>().GameOver();
    12         }
    13     }
    14 }

    圆盘旋转程序

     1 using System.Collections;
     2 using System.Collections.Generic;
     3 using UnityEngine;
     4 
     5 public class RotateSelf : MonoBehaviour {
     6 
     7     public float speed = 90;
     8     
     9     // Update is called once per frame
    10     void Update () {
    11         transform.Rotate(new Vector3(0, 0, -speed * Time.deltaTime));
    12     }
    13 }
  • 相关阅读:
    解决帝国CMS搜索页面模板不支持灵动标签和万能标签的方法
    Visual Studio Code 相关
    随机的背景图案
    将视频做为网页背景 超炫!
    gunicorn部署Flask服务
    查看mysql数据库及表编码格式
    查看修改mysql编码方式
    【ssm整合打印sql语句】
    【mybatis在控制台打印sql语句配置】
    【mybatis 的foreach的用法】
  • 原文地址:https://www.cnblogs.com/krystalstar/p/10118581.html
Copyright © 2011-2022 走看看