Unity3D学习篇
文章平均质量分 83
主要包含Unity的操作和一些3D小游戏项目的制作
张三千8800
这个作者很懒,什么都没留下…
展开
-
Unity3D中小地图的添加
我们在很多游戏中都能看到小地图这个功能,小地图可以全局地看到游戏的场景和其他玩家所在的位置,这个功能还是很实用并且常见的,下面给大家演示一下怎么做出小地图的效果。1.搭建场景首先在Unity中搭建出场景,也就是小地图所显示出的区域。这是我简单搭建的一个场景,仅供参考:2.新建一个摄像机,并取名为Camera_Top。改变摄像机的位置,改变摄像机的X周旋转为90度,使摄像机照射区域为场景的区域。3.新建Render Texture在Assets面板中新建一个Render Texture,并且取名原创 2020-11-20 14:55:42 · 1026 阅读 · 0 评论 -
U3D基础篇之人工智能—攻击与追踪
敌人攻击在上一节的基础上进行完善Enemy类。首先添加这些变量。 public float chaseSpeed = 6f;//追踪速度 public float chaseWaitTime = 5f;//追踪时间 private float chaseTimer = 0f;//已经追踪的时间 public float sqrPlayerDist = 4f;//与玩家的距离 private bool chase = false;//是否追踪 public原创 2020-10-08 17:31:16 · 539 阅读 · 0 评论 -
U3D基础篇之人工智能—敌人视野
首先在敌人上创建一个空的子物体,然后给这个子物体添加Box Collider组件,然后设置BoxCollider的范围。因为这个范围只是作为触发器进行使用,所以将is trigger进行勾选。然后在这个子物体上添加脚本 public float fieldOfView = 100f;//敌人发现玩家的视野 public bool playerInSight = false;//玩家是否被发现 public Vector3 playerLastSight; public Vector3原创 2020-10-05 16:29:21 · 508 阅读 · 0 评论 -
U3D基础之人工智能—敌人巡逻
敌人巡逻首先在场景中创建几个巡逻的点,将玩家和敌人的Tag设置为相应的Tag其中enemy的组件如下在Enemy脚本中代码如下public class Enemy : MonoBehaviour{ public float PatrolSpeed = 3f; public float PatrolWaitTime = 1f; public Transform PatrolWayPoints; private NavMeshAgent agent; priv原创 2020-10-05 16:18:43 · 703 阅读 · 0 评论 -
U3D基础之人工智能—自动寻路
首先将场景搭建好实现玩家自动朝着目标点运动添加一个玩家角色,想让玩家有自动寻路的功能需要在玩家的组件中添加一个Nav Mesh Agent组件。在场景中添加一个空物体作为目标点的位置。然后给玩家添加脚本,内容如下public class Actor : MonoBehaviour{ public Transform goal;//目标位置 private NavMeshAgent agent; private void Start() { agent原创 2020-10-05 13:23:02 · 401 阅读 · 0 评论 -
Unity3D打包设置成窗口模式(可调节像素)
U3D打包首先要在Scenes In Build中添加上游戏的场景,然后在player setting中进行设置注意这里选择的是enabled,其他按照图示勾选就可以了。然后点击运行就OK了原创 2020-09-20 15:47:19 · 13206 阅读 · 0 评论 -
Unity3D射击类游戏制作第五节--玩家角色-武器
ps:因为在上一节中子弹的射击是连续的,暂时还没有找到解决的办法,所以在RobotPlayer中加了如下代码: if (Input.GetKeyDown(KeyCode.Space)) { animator.SetBool("Shoot", false); }武器类WeaponBase的编程如下:using System.Collections;using System.Collections.Generic;using Un原创 2020-05-18 10:52:56 · 1242 阅读 · 1 评论 -
Unity3D射击类游戏制作第四节--玩家角色-交互
将之前制作好的角色模型变成预制体,并命名为Player。并将player的Tag设置为player.添加Rigidbody,Character Controller,Capsule Collider组件将Rigidbody组件设置为运动学这个角色是由RobotPlayer所控制。并且RobotPlayer是继承自BaseRobot。其中BaseRobot代码如下:using System.Collections;using System.Collections.Generic;using原创 2020-05-17 00:05:50 · 888 阅读 · 0 评论 -
Unity3D射击类游戏制作第三节--游戏模型
是原创 2020-05-12 23:20:14 · 697 阅读 · 0 评论 -
Unity3D射击类游戏制作第二节--规划游戏数据
我们上一节已经搭建好了游戏的场景,我们这一节进行规划游戏中的数据。添加标签并取名为Enemy添加一个新的layer取名为Ignore Bullet打开并取消勾选Edit–Project Setting–Physics新建一些文件夹在Codes文件夹下新建脚本并在HUD脚本中写如下程序using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI原创 2020-05-10 00:04:23 · 442 阅读 · 0 评论 -
Unity3D射击类游戏制作第一节--场景搭建
导入资源在Asset Store中下载游戏所需的资源:FPS Icons Pack;RPG_FPS_game_assets_industrial;SciFiWarriorPBRHPPolyart并把Scenes中的SampleScene改名为BattleScene搭建场景创建一个plane,并将其放大,这里是将plane的X,Z轴都放大6倍。并将其命名为Ground。再给平面添加一个Layer,再把地面的layer设为新建的layer.因为地面不发生移动,所以把Ground的Static勾选上。原创 2020-05-09 17:52:56 · 2050 阅读 · 1 评论 -
Unity3D消耗CPU过高解决办法
今天打开Unity刚制作好一个场景然后就这样了是因为打开了实时渲染的缘故,只需把Window–Rendering–Lighting Setting打开将这个取消勾选即可然后就OK了原创 2020-05-09 17:24:53 · 8851 阅读 · 3 评论 -
Unity基础篇--Mathf类
常用的几个函数void Start() { Debug.Log(Mathf.PI);//PI值 Debug.Log(Mathf.NegativeInfinity);//负无穷 Debug.Log(Mathf.Infinity);//正无穷 Debug.Log(Mathf.CeilToInt(3.6f));//向上取整数 ...原创 2020-05-05 19:47:01 · 457 阅读 · 0 评论 -
Unity3D基础篇--Time类
Time.deltaTime 增量时间using System.Collections;using System.Collections.Generic;using UnityEngine;public class test01 : MonoBehaviour{ public GameObject cube; // Start is called before the ...原创 2020-05-05 16:47:09 · 211 阅读 · 0 评论 -
Unity中摄像机案例
镜子效果制作制作流程1、创建Cube,调整期位置,移到主摄像机之前2、创建Plane,重命名为“jingzi”,旋转角度,使其立起来3、在“jingzi”后面新建一个摄像机(camera),调整camera方向,使其正对Cube4、创建一个渲染纹理资源:jingzi.renderTexture5、在camera属性面板中,将jingzi.renderTexture拖到Target Te...原创 2020-04-24 09:33:25 · 336 阅读 · 0 评论 -
Unity3D基础篇-Transform类
Transform类的运用案例一Transform.childCount --子物体数将sphere设定为cube的子物体,然后运行以下代码public Transform cube; public Transform Sphere; // Start is called before the first frame update void Start() ...原创 2020-04-19 21:43:14 · 1010 阅读 · 0 评论 -
Unity3D基础篇-Gameobject类
Gameobject类Gameobject.Find(name); 查找找到并返回一个名字为name的游戏物体,如果没有找到,则返回null。案例1: public GameObject cube; // Start is called before the first frame update void Start() { cube = Ga...原创 2020-04-12 20:46:25 · 358 阅读 · 0 评论 -
Unity3D基础篇第一天
C#脚本编写注意要点脚本命名首字母大写;脚本名字不能和已知方法名相同;脚本名与类名不一致,脚本添加不到对象上;C#脚本声明周期我们会发现,脚本里自带两个函数: void Start() { } void Update() { }start方法在update前进行调用,只调用一次(所以无论start方法无论是写在update前面还是后面,都先调用...原创 2020-04-11 16:00:59 · 155 阅读 · 0 评论