【Unity开发实战】官方实例SURVIVAL SHOOTER开发心得
来源:互联网 发布:詹姆斯生涯数据最新 编辑:程序博客网 时间:2024/05/18 00:39
其实了解并学习Unity也有了差不多两个月了,之前知识了解一些基础知识,也看了一些官网的API,做了一些实例,但是并没有做过一个完整的游戏,最近在官网看到一个叫SURVIVAL SHOOTER的游戏,并且富有相关的资源和源码,还有英文教程。把项目下载下来看了一下,感觉是一个入门级的简单游戏,十分适合初学者。然后就观看了一下英文教程。博主英语较渣,只能听懂6成。但是看代码是没问题的。当时我也没有记录视屏中的代码,只是了解了一下思想。然后就开始了开发。大概折腾了一天的时间,终于把游戏开发好了。写这篇文章呢,主要是也对其中一些知识点的做一些记录。
控制主角的移动
其实控制移动应该是游戏开发中最基本的一种操作。在Unity中也提供了多种方式来提供开发者使用。下面列举两个比较常用的。
float xAxis=Input.GetAxis("Horizontal"); //获取水平坐标float zAxis=Input.GetAxis("Vertical"); //获取垂直坐标transform.Translate(new Vector3(xAxis,0,zAxis)*speed*Time*deltaTime)//根据指定的向量移动物体
这个算是最简单的一种移动方式了。当然transform.Translate方法有六个重载方式。每个重载方法都能实现主角的移动,大家可以去看官网的API,这里不做深究。
//获取刚体组件Rigidbody playerRigidbody = gameObject.GetComponent <Rigidbody > ( );//移动刚体到某个位置playerRigidbody.MovePosition ( transform .position + new Vector3 ( xAxis , 0, zAxis )* speed *Time . deltaTime );
使用这种方式的前提是当前的GameObject中必须要有刚体组件,否则将会报错。
相机跟随主角
相机跟随主角是每个游戏中都会涉及的功能,同样也有很多种方式,这里提供一种,仅供参考:
Vector3 targetPos = player.position + new Vector3 ( 0, 1.7f, -5.5f );//得到相机与主角的相对位置//两个向量之间的线性变化。按照t,在一秒内从form开始到to结束。transform.position = Vector3.Lerp ( transform.position,targetPos,smooth*Time.deltaTime);
这种方式使得相机跟随主角的时候更加的平滑。
控制主角的转向
我们要求主角会随着我们鼠标的位置的改变,而面向不同方向,就像CS一样。
/*控制转向*/ Ray ray = Camera. main .ScreenPointToRay ( Input. mousePosition );//从鼠标通过屏幕上的一个点,产生一条射线 RaycastHit hitInfo ;//光线投射碰撞的信息 if (Physics . Raycast ( ray , out hitInfo, 200 , groundLayerIndex )) { Vector3 target = hitInfo. point ;//碰撞点 target .y = transform .position . y; transform .LookAt ( target );//让主角面向那个方向 }
子弹发射:
private LineRenderer bubbleLineRenderer;//声明LineRenderer bubbleLineRenderer=gameObject.GetComponent<LineRenderer>();//获取物体的LineRenderer组件 bubbleLineRenderer.enabled=true;//激活组件 Ray bubbleRay=new Ray(transform.position,transform.forward); RaycastHit hitInfo; if(Physic.Raycast(bubbleRay,out hitInfo)){ bubbleLineRenderer.SetPosition(1,hitInfo.Point);//设置LineRenderer的位置 }else bubbleRenderer.SetPosition(1,transform.position+transform.forward*50);
其实在开发这个游戏的过程中才发现自己有很多东西都没有搞懂,很多的知识只有在实际开发中才会明白。对Unity还有很多要学
0 0
- 【Unity开发实战】官方实例SURVIVAL SHOOTER开发心得
- unity官方demo学习:Survival Shooter
- Unity 官方案例 Survival Shooter 复刻版
- Unity实例.003官方示例Survival Shooter Tutorial核心代码学习
- unity survival shooter ZSpace
- 学习Unity官方教程-Survival Shooter tutorialの声明
- Unity学习笔记一 - Survival Shooter Tutorial
- Unity学习笔记二 - Survival Shooter Tutorial
- Unity学习笔记三 - Survival Shooter Tutorial
- Unity学习笔记四 - Survival Shooter Tutorial
- Unity学习笔记五 - Survival Shooter Tutorial
- Unity学习笔记六 - Survival Shooter Tutorial
- Unity学习笔记七 - Survival Shooter Tutorial
- Unity学习笔记八 - Survival Shooter Tutorial
- Unity学习笔记九 - Survival Shooter Tutorial
- Unity学习笔记(四)----Survival Shooter
- Unity学习笔记(五)----Survival Shooter
- Unity官方实例教程 Space Shooter
- Linux下Jenkins的安装
- RAID5原理简介
- JNI开发入门
- atan2反正切快速近似算法
- 最近正在参与的Swift2.0翻译工作(Access Control章节)
- 【Unity开发实战】官方实例SURVIVAL SHOOTER开发心得
- SIFT特征提取分析
- WR威廉指标
- makefile中赋值的左边有没有冒号和有冒号,有什么区别
- java foreach循环为什么不能赋值
- 回调函数透彻理解Java
- 垃圾回收器概述
- RabbitMQ 实践
- ubuntu安装rpm的方法