zoukankan      html  css  js  c++  java
  • 坦克大战

    游戏介绍:

    一共有蓝色和红色两只坦克,蓝色坦克WASD控制移动,空格键发射子弹;红色坦克方向键控制移动,Enter发射子弹。坦克下方有血条,血条消失即游戏结束。 

    场景导入:

    Window →Lighting→Auto Generate取消;取消光线自动渲染,加快开发进度(自动渲染等待时间太长)

    Camera→Project→正交视图与透视图

    正交视图:即无消失点投影,物体的大小不会随距离的远近而变化,常用作2D

    透视图:和我们眼睛看到的物体一直,近大远小

    FixedUpdate()固定帧去调用

    float h = Input.GetAxis("Vertical"),h的值域为[-1,1]之间,水平方向

    刚体组件(Rigibody)→Constraints:约束,控制对刚体运动的约束,勾选这表示冻结即不发生效果。

    可以在Unity→Edit→Project Setting→Input 中进行键盘设置

    实例化对象

            public  KeyCode firekey = KeyCode.Space;
    if (Input.GetKeyDown(firekey)) { GameObject go = GameObject.Instantiate(shellprefab, transform.position, transform.rotation) as GameObject; go.GetComponent<Rigidbody>().velocity = go.transform.forward * shellspeed; }

    设置空格按键,当按下空格按键后,对游戏对象进行实例化,实例化的三个参数分别是实例化的物体对象,对象的位置,对象的旋度;将实例化的对象对象赋值一个名称,以便获取对象的相关组件。

    定时毁灭物体

    Destroy(this.gameObject, time)

    视野跟随控制

     1 using System.Collections;
     2 using System.Collections.Generic;
     3 using UnityEngine;
     4 
     5 public class FollowTarget : MonoBehaviour {
     6 
     7     public Transform Play1;
     8     public Transform Play2;
     9     private Vector3 offset;
    10     private Camera camera;
    11     void Start () {
    12         offset = transform.position - (Play1.position + Play2.position) / 2;
    13         camera = this.GetComponent<Camera>();
    14     }
    15     
    16     
    17     void Update () {
    18         transform.position = (Play1.position + Play2.position) / 2 + offset;
    19         float distance = Vector3.Distance(Play1.position, Play2.position);
    20         float size = distance * 1;
    21         camera.orthographicSize = size;
    22     }
    23 }

    控制两个坦克的视野:

    (1)确定两个坦克中心点和相机的偏移:首先调整相机到合适位置,计算出此时相机和中心点的距离,并赋值给偏移量Offset

              动态时,确定相机位置

     transform.position = (Play1.position + Play2.position) / 2 + offset;

    (2)确定两个坦克距离和相机Size参数的比例关系:

    float distance = Vector3.Distance(Play1.position, Play2.position);
      计算出两个坦克之间的距离,并赋值给distance,size/distance计算出此时的比例系数;
    float size = distance * 1;

            动态时,确定相机size值

            获取camera组件,将size值赋值给camera的size组件参数

    camera.orthographicSize = size;


  • 相关阅读:
    小米手机做USB电脑摄像头啦,亲测可用,附有详细教程!
    【DIY文章列表标签】dt_gry_list
    Oracle 10g 设置 PL/SQL 远程
    关于硬盘“4K扇区”对齐的查看与设置方法
    oracle数据误操作恢复【flashback闪回操作】
    CENTOS下安装LNMP环境随笔
    深喉咙使用心得(陆续更新ing....)
    CENTOS6.3环境下安装VSFTPD 便于开通FTP功能随笔
    MYSQL/SQL_SERVER/ORACLE三种数据库自动备份方法
    U盘安装 ubuntu 12.04随笔
  • 原文地址:https://www.cnblogs.com/krystalstar/p/10175496.html
Copyright © 2011-2022 走看看