博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
坦克大战
阅读量:7171 次
发布时间:2019-06-29

本文共 2010 字,大约阅读时间需要 6 分钟。

游戏介绍:

一共有蓝色和红色两只坦克,蓝色坦克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
().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
();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;

 

 

 

 

 

转载于:https://www.cnblogs.com/krystalstar/p/10175496.html

你可能感兴趣的文章
MyCP
查看>>
第一章课后总结 基础知识
查看>>
zabbix的配置使用
查看>>
热备,冷备,云备的区别
查看>>
Java Web学习总结
查看>>
Java面试宝典2017
查看>>
sql server 报表允许用windows 身份登录的任何人进入
查看>>
Engineering math
查看>>
call for paper
查看>>
leetcode — convert-sorted-array-to-binary-search-tree
查看>>
Power of Cryptography
查看>>
第十四个目标 (fzu)
查看>>
JS - The react framework
查看>>
Leetcode | Path Sum I && II
查看>>
数据库存储的时间与数据读写时间相差14个小时
查看>>
Linux系统之路——如何在服务器用U盘安装CentOS7.2(一)
查看>>
论文阅读笔记十四:Decoupled Deep Neural Network for Semi-supervised Semantic Segmentation(CVPR2015)...
查看>>
查看tensorflow是否为MKL版本命令
查看>>
分层索引的汇总用法
查看>>
视图、触发器、事务、存储过程、函数、控制流程
查看>>