unity基本函数方法
文章平均质量分 72
心之凌儿
写代码是专业的
展开
-
Unity 协程(Coroutine)原理与用法详解
前言:协程在Unity中是一个很重要的概念,我们知道,在使用Unity进行游戏开发时,一般不考虑多线程,那么如果处理一些并发的需求呢,Unity给我们提供了协程这种方式为啥在Unity中不考虑多线程因为在Unity中,只能在主线程中获取物体的组件、方法关于协程1,什么是协程协程,从字面意义上理解就是协助程序的意思,我们在主任务进行的同时,需要一些分支任务配合工作来达到最终的效果,这就是协程的概念:举个例子,在场景加载的时候,如果你的场景很复杂,那么加载过程就有可能使得画面卡顿,我们不原创 2021-04-29 16:22:11 · 60598 阅读 · 27 评论 -
Unity 将Sprite打包进图集
前言:打包图集是一个很简单的过程,但是如果没有这样的经验,可能不知道如何下手本博客大概说一下打包流程,以及一些基本原理1、为什么要打包图集首先要了解一点,在UGUI中即使你什么都不干,在项目打包时,Unity也会自动将你的一些小图片资源合在一张大图里面,也就是合成一张图集,但是这种默认的方式,会产生大量的Draw Call,对于性能消耗比较大而NGUI则是开发者必须要将图片资源打包成图集,然后才能使用这些图片资源因此无论是UGUI还是NGUI,掌握图集的打包都是非常重要的2、打包开始前在合成原创 2021-04-23 11:26:46 · 10025 阅读 · 11 评论 -
Unity 将数据转换为Json格式
Json数据在数据网络传输时是很重要的一部分,所以对于数据序列化为Json数据是很重要的一环使用JsonUtility转换为Json数据格式为了与Json数据键值对格式相对应,首先需要使用类来将数据封起来,然后使用ToJson()方法转换为对应格式:/// <summary>/// 将数据转换封装为一个类/// </summary>public class Date{ public string name; public string passwor.原创 2021-01-17 16:19:45 · 2045 阅读 · 1 评论 -
Unity 角度与旋转(四元数与欧拉角)
在Unity中,角度与旋转是一个比较复杂的事情,其实现方式也是有很多,但是使用的规则是比较复杂的,所以需要选择对应的方式来实现需要的效果一、Unity角度的表示方式在Unity中表示角度的方式主要有两种,四元数与欧拉角,两者的表示方式有很大的不同,需要深刻理解两者,才能更好的应用:四元数(Quaternion):四元数可用于表示GameObject的方向或旋转。该表示法内部包含四个数字(在Unity中称为x,y,z和w),但是这些数字并不表示角度或轴,因此通常不需要直接访问它们。除非您对四元.原创 2020-12-21 14:35:57 · 15607 阅读 · 2 评论 -
Unity 几种排版方式:Layout Group
前言:你是否因为在使用UI元素时迟迟无法对其一排元素而痛苦,你是否因为元素数量动态变化而绝望。如果是,恭喜你找到绝佳良药一、什么是Layout GroupLayout Group翻译为“布局组”,从字面意思就可以理解,可以对一组元素进行动态布局,这里说的动态是,组内元素数量发生变化时,Layout Group可以智能的帮助你重新排版,可以从下面的演示图看到:当我们为父元素添加一个Layout Group组件时,改变子元素的数量时,就会有这样一个动态的效果,这样无论合适,我们的排版都可以保持.原创 2020-12-14 22:11:31 · 10418 阅读 · 0 评论 -
Unity 数据存储方式之一:ScriptableObject
ScriptableObject:最常用的功能就是背包系统的实现,ScriptableObject的特点是在游戏结束后,数据不会清除,依旧会保留游戏中产生的数据。所以可以利用这一点来做背包系统什么是ScriptableObject:查阅Unity官方手册解释成为ScriptableObject是一个数据容器,可用于保存大量数据,而与类实例无关。ScriptableObjects的主要用例之一是通过避免复制值来减少项目的内存使用量就像MonoBehaviours一样,ScriptableObj.原创 2020-12-14 20:42:17 · 4964 阅读 · 5 评论 -
Unity 场景异步加载(加载界面的实现)
前言:玩游戏最讨厌的是什么呢?当然是游戏加载界面啦但是你知道吗,加载界面在游戏制作中是不可或缺的,它可以使我们的场景完全加载完毕后再进入游戏,确保用户不会出现加载卡顿的情况。如何实现一个简易的加载界面呢?来跟我学习一下吧效果图UI创建:首先创建一个开始界面,为Button按钮添加事件来完成场景的转换:然后创建一个加载界面的UI,首先需要的呢就是一个游戏进度条,可以直接使用Slider来完成创建,其UI层级关系为:其元素作用为:Background:即整个进度条的背景为棕色.原创 2020-12-07 21:45:03 · 19482 阅读 · 12 评论 -
Unity 判断物体是否是在相机视野内
你玩吃鸡游戏有没有这样的经历,往往只有当枪在你的视野内时,才可以捡起,而如果你背对枪,就算距离很近是,也没有办法捡起。如何用Unity来实现类似的功能呢,来学习吧!Mesh Renderer:Mesh Renderer即网格渲染器,如果在游戏中,相机可以捕捉到物体,则会通过Mesh Renderer对物体进行渲染,因此我们可以通过Mesh Renderer来判断物体是否在相机视野中,从而做出判断实现方式:首先确保物体上面具有Mesh Renderer,然后通过脚本生命周期的OnBecameVis.原创 2020-12-05 17:39:18 · 4636 阅读 · 1 评论 -
Unity -控制物体旋转到指定角度
在游戏中,我们都会有一些开门或者开宝箱的经历,如何使用Unity来实现呢,来一起学吧使用rotation来完成:rotation是控制物体旋转的一种方式,特别适合将物体旋转到指定的角度,但是要注意旋转的角度必须是一个四元数,可以使用Quaternion将三维角度转换为四元数:transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.Euler(0, 0, 90), 0.05f);...原创 2020-11-29 20:09:25 · 20771 阅读 · 4 评论 -
Unity -物体移动的所有实现方式
前言控制物体移动是一个游戏中重要的一部分,对于不同的场景,需要运用不同的方式来完成对于游戏物体的移动1,控制玩家移动控制玩家移动主要是空过WASD键(方向键)来完成,这种控制方式首先需要输入键盘的控制,然后使用函数方法来完成,主要的方式有:使用transform.Translate: public float speed = 2f; // Update is called once per frame void Update() { float x =原创 2020-11-19 20:30:49 · 869 阅读 · 0 评论 -
Unity基本函数-Random随机数的生成
前言游戏开发过程中往往需要一些随机效果,比如在地图上随机刷新野怪,这时就需要使用随机函数Random来完成1,Random函数有哪些方法查看Unity官方文档,我们发现Random的静态属性和静态方法有下面的几种:具体的解释为:特性:insideUnitCircle:返回半径为1的圆内的随机点(只读)insideUnitSphere:返回半径为1(只读)的球体内的随机点onUnitSphere:返回半径为1(只读)的球体表面上的随机点rotation:返回随机旋转(只读)rotati原创 2020-11-16 22:47:54 · 14831 阅读 · 0 评论 -
unity中Navigation实现自动寻路功能
前言Navigation可以使物体智能的移动到某个位置,这样可以在游戏完成一些NPC的智能路径和主角的寻路功能1,对于场景进行渲染场景的渲染可以告诉角色该走哪里,哪里是障碍物,这样就可以实现对于场景的导航和避免角色撞墙1.1、将场景需要渲染的物体设为静态:首先选中需要渲染的物体,然后在inspector面板中右上角将物体设为静态物体,这样可以对物体进行渲染1.2、打开NaNavigation(导航)渲染面板:在windows中找到AI点击后出现Navigation面板,1.3、在na原创 2020-11-02 19:54:23 · 5438 阅读 · 0 评论 -
unity场景跳转、隐藏鼠标等常用功能代码集合
前言Unity有一些基本功能代码实现的方法,这些功能灵活性不强,比较固定,可以记下来进行使用一、隐藏鼠标做3D游戏往往需要隐藏鼠标,可以通过下面的命令来实现:Cursor.lockState = CursorLockMode.Locked;//锁定指针到视图中心Cursor.visible = false;//隐藏指针二、实现场景跳转场景跳转是比较常用的转换场景的方式: UnityEngine.SceneManagement.SceneManager.LoadScene(1); #数字对应原创 2020-10-21 20:42:08 · 1012 阅读 · 0 评论 -
unity扩展方法的使用
前言unity扩展方法的使用一、为什么要扩展方法当我们需要重复使用untiy没有的函数方法时,反复的编写代码比较麻烦,这时可以使用扩展方法来一次编写,多次使用二、使用方法1.编写方法首先创建一个脚本,创建一个静态的类:using System.Collections;using System.Collections.Generic;using UnityEngine;public static class GetInt //需要是一个静态的类{ public static原创 2020-10-07 21:40:22 · 643 阅读 · 1 评论 -
unity获取场景中物体的几种方式
前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot a原创 2020-10-05 19:32:57 · 12630 阅读 · 3 评论 -
unity中排版组件Horizontal Layout Group的使用
前言在游戏中,我们经常遇到需要隐藏部分元素,如何保证在隐藏部分元素后,剩下的元素依旧能有序的排列呢,答案是使用Horizontal Layout Group组件一、Horizontal Layout Group是什么?unity官方文档的描述为:翻译为中文:对于基本的属性解释为:二、使用步骤直接为元素集合的父物体添加组件Horizontal Layout Group,并设置相关属性即可,例:给三个Button按钮的父物体MainControl添加组件后,隐藏其中任何一个物体,其他物体原创 2020-10-03 11:07:42 · 9429 阅读 · 0 评论 -
Unity中使用OnMouseEnter
前言在unity的MonoBehaviour的生命周期中,有几个可以用鼠标调用的函数:可以直接对于3D场景中的物体进行渲染操作(对于2D物体需要添加Event trigger来使用)一、使用方法在脚本中调用相关函数即可二、使用步骤1.写代码直接使用相关函数完成相关步骤2.效果展示...原创 2020-09-28 21:40:37 · 4026 阅读 · 0 评论 -
unity中Event tritter的使用
前言Event tritter是untiy中ui响应事件的一个组件,使用Event tritter可以完成一些UI响应事件的控制一、Event tritter是啥呢Unity官方文档对于Event tritter的解释为响应已经定义的的事件。在其中定义几种触发类型,鼠标进入悬浮,退出悬浮等等,可以使用这些触发类型,完成对于UI的交互操作二、实例##1,首先创建一个image,并添加一个text作为子物体:##2,将text的组件text勾选掉##3,添加脚本,并编写脚本gamet原创 2020-09-27 21:29:47 · 275 阅读 · 0 评论 -
unity获取子物体
1,使用GetComponentsInChildren来完成Transform[] tran = gameObject.GetComponentsInChildren<transform>();2,使用Find来完成:transform.Find()3,使用GetChild()transform.GetChild()原创 2020-09-27 20:14:37 · 2884 阅读 · 0 评论 -
unity中使用Ray射线完成物体选择
前言Unity中使用Ray射线可以直接通过点击屏幕来时实现控制3D场景中的物体,来跟我一起来学习吧!一、发射射线Ray ray = cam.ScreenPointToRay(Input.mousePosition); //cam为相机RaycastHit hit;二、射线碰撞检测if (Physics.Raycast(ray, out hit, maxDistance))//碰撞检测{ Debug.DrawLine(cam.positon,hit.point);//画线显示 Debug.原创 2020-09-26 21:34:20 · 1451 阅读 · 0 评论 -
unity使用摇杆控制物体移动
文章目录前言一、Scroll Rect是什么?二、虚拟摇杆的建立过程1.创建摇杆UI2,为摇杆添加Scroll Rect2.写代码,来实现摇杆对于物体移动的控制总结前言unity做移动端的开发时,虚拟摇杆的应用很广泛,今天使用Scroll Rect组件来做一个简单易用的摇杆一、Scroll Rect是什么?Scroll RectS是UGUI一个很好用的组件,可以用来做一些可以滚动的窗口,比如王者荣耀英雄选择界面上下翻看的功能。官方对于其定义为当需要在小区域显示占用大量空间的内容时,可以使用Scr原创 2020-09-17 17:33:17 · 4925 阅读 · 1 评论 -
unity射线检测碰撞
前言:使用普通的碰撞体检测,检测时不连续的,是每隔0.02秒进行的离散检测,这样在被检测的物体速度比较快时,就会由直接穿过物体的可能,这个时候,就需要使用射线检测了。为了实现高速状态下的碰撞检测,要使用连续的射线来完成这样一个功能。一,创建射线使用 new Ray创建射线new Ray(发射位置,发射方向乘上发射速度)Ray ray = new Ray(transform.position, transform.forward * 100); 二,碰撞检测使用Physics.Raycast原创 2020-09-07 20:46:28 · 3013 阅读 · 4 评论 -
unity几种延时执行程序的方法
一,使用InvokeInvoke方法可以很方便的将程序延迟执行,但是使用有一定的局限性,只能用于不带参数的函数void Updata(){ if(Input.GetKeyDown(KeyCode.A)) { Invoke("demo",2f); //两秒后调用demo()函数 }}void demo(){ Debug.log("This is a demo");}二,使用InvokeRepeatinvoid Updata(){ if(Input.GetKeyDown(K原创 2020-09-04 22:18:37 · 9144 阅读 · 3 评论