
Unity基础
轶_辰
这个作者很懒,什么都没留下…
展开
-
生成一定范围内随机小数
void Start(){ System.Random random = new System.Random(); for (int i = 0; i < 10; i++) { Debug.Log(GetRandomNumber(random,3.14, 4.54, 2)); } } /// <summary> /// 在一定范围内生成随机小数 /// </summary> /// &l.原创 2021-08-27 16:54:16 · 831 阅读 · 0 评论 -
协程
Unity核心原理(3)深入理解协程转载 2020-04-11 01:12:24 · 160 阅读 · 0 评论 -
游戏物体生命周期
游戏物体生命周期场景中的游戏物体通过脚本来控制其具体行为 生命周期流程图:官方解释 脚本里重点事件函数: Awake:游戏物体实例化后并处于激活状态时调用,即使脚本组件没有激活也会调用,而且先于Satrt()函数执行 OnEnable:游戏物体与脚本组件激活时调用(会反复触发) Start:游戏物体与脚本组件处于激活状态,在Update()运行前调用(只调用一次,当物体关闭激活状态...转载 2020-04-10 23:17:47 · 303 阅读 · 0 评论 -
Unity3d中使用LineRenderer组件画线
LineRenderer线渲染器主要是用于在3D中渲染线段,在这里要注意LineRenderer渲染出的线段的两个端点是3D世界中的点,即它是属于世界坐标(World Space)中的。这里我设置了一组单选按钮,通过单选按钮控制线条颜色和粗细。为了方便查看线条,我新建了一个Plane作为背景,根据鼠标按下时的位置,来持续绘制线段以下为主要代码using System.Collec...原创 2019-07-29 15:50:29 · 18754 阅读 · 4 评论 -
Random
Random.Range(min,max) //随机生成一个float类型或int类型的数如果参数为float类型,返回的值包含最大值 Random.Range(0.0f, 1.0f); 值在[0.0,1.0]之间如果参数为int类型,返回的值不包含最大值 Random.Range(0, 10); 值在[0,10)之间Random.i...原创 2019-07-22 13:30:57 · 293 阅读 · 0 评论 -
Unity中的欧拉角与四元数
Quaternion.Euler() 将欧拉角转换为四元数//设置物体旋转//直接给欧拉角赋值transform.eulerAngles = new Vector3(45, 45, 45);//将欧拉角转换为四元素,赋值给rotationtransform.rotation = Quaternion.Euler(new Vector3(45,45,45));Q...原创 2019-07-22 15:55:43 · 978 阅读 · 1 评论 -
Rigidbody刚体组件控制物体的移动和旋转
Unity中如果一个物体有Rigidbody组件,可以通过Rigidbody组件控制该物体移动和旋转Rigidbody.positionRigidbody.rotationvoid Start() { //设置游戏物体的位置及旋转 GetComponent<Rigidbody>().position = Vector3.zero;...原创 2019-07-22 18:47:15 · 4232 阅读 · 0 评论 -
Unity中利用射线检测判断当前点击的物体
void Update() { //返回一条从相机到鼠标位置的射线 Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); //Ray ray01 = new Ray(Camera.main.transform.position, Vector3.forward); ...原创 2019-07-22 19:30:12 · 7589 阅读 · 0 评论 -
Unity中更改鼠标光标样式
Unity项目中将鼠标光标样式换成自己定义的鼠标样式在属性面板将准备好的图片的Texture Type设置为Cursor若要更改整个项目的默认鼠标样式可以在Edit->Project Setting->Player->Default Cursor中设置,将更改好的图片拖拽赋值即可代码改变鼠标光标样式核心方法: Cursor.SetCursor();Se...原创 2019-09-18 15:13:23 · 9543 阅读 · 3 评论 -
Unity工程3D和2D开发模式切换
在新建工程时,经常会选择默认的3D工程,但是如果想做2D游戏又不小心选了3D工程,可以通过如下方式更改:Edit > Project Settings > Editor > DefaultBehaviorMode 改成2D...原创 2019-07-06 18:05:38 · 8293 阅读 · 0 评论 -
Unity中简易定时器
1、每帧检查(Time.deltaTime)using System.Collections;using System.Collections.Generic;using UnityEngine;public class Timer : MonoBehaviour{ public float m_Time = 1f; void Update() { ...原创 2019-07-05 14:15:06 · 881 阅读 · 1 评论 -
Unity程序运行中动态关闭Vuforia
ImageTargetBehaviour imagetargetBehaviour= GameObject.FindObjectOfType(typeof(ImageTargetBehaviour)) as ImageTargetBehaviour;imagetargetBehaviour.enabled = false;//或使用这种方式GameObject.Find("ARCam...原创 2019-01-07 11:29:44 · 1557 阅读 · 1 评论 -
UGUI之RawImage显示多边形或圆形贴图
本文转自雨松大大的博文,原文链接UGUI研究院之RawImage显示多边形或圆形贴图(二十六)实现原理本渣渣没搞明白,下面为主要代码using System;using UnityEngine;using UnityEngine.UI; public class UICircle : RawImage{ const int FILL_PERCENT = 100; float...转载 2019-01-24 11:35:16 · 816 阅读 · 0 评论 -
Unity中角度与弧度相互转换
Mathf.Deg2Rad=(PI*2)/360---------度转弧度Mathf.Rad2Deg=360/(PI*2)---------弧度转为度因为2π =360° 所以1弧度=360°/(PI*2)(≈57.3°) 1度=(PI*2)/360°( ≈0.017453弧度 ) Unity中如果想要计算Sin30°的值,得先将角度转为弧度Sin...原创 2019-06-05 17:33:10 · 8739 阅读 · 0 评论 -
Unity检测场景中游戏物体是否处于激活状态
如果游戏物体有父级物体,那么该物体显示与否受父物体影响当父物体被停用时,它的子对象通常被标记为Active,虽然它们不可见只有自身以及父级物体处于激活状态时,该物体的activeInHierarchy属性才为trueGameObject.activeInHierarchyGameObject.activeSelf...原创 2019-06-20 11:15:15 · 20212 阅读 · 2 评论 -
Mathf 中常用方法
Mathf.Abs()------取绝对值Mathf.Ceil()------向上取整,返回值为Float类型Mathf.CeilToInt()------向上取整,返回值为Int类型void Start() { //向上取整,返回比当前值大的一个整数 Debug.Log(Mathf.Ceil(10.0f));//10 Debu...原创 2019-06-25 17:21:26 · 10795 阅读 · 0 评论 -
Unity中可视化射线
//三个参数分别为:射线发射起始位置,射线方向,颜色Debug.DrawRay(rayDown.position, Vector2.down * 1f, Color.blue);原创 2019-07-08 17:38:35 · 4352 阅读 · 0 评论 -
Unity中判断鼠标或者手指是否点击在UI上(UGUI)
在Unity场景中,有时UI和游戏角色都需要响应触摸事件,如果同时响应可能就会出现点击UI的时候影响到了游戏角色。所以我们需要对所点击到的东西做判断,这里使用UGUI系统自带的方法和射线检测的方式,判断是否点击到UI上:第一种方法,直接在Update中判断:void Update() { //判断是否点击UI if (Input.G...原创 2019-07-14 23:02:11 · 17663 阅读 · 0 评论 -
Unity中使用DontDestroyOnLoad时,避免物体重复出现
两个场景中来回跳转时 DontDestroyOnLoad的物体会重复创建 , 而我们要求场景中只存在一个。解决办法:flag判断 //不需要销毁的物体是否存在 public static bool isClone = false; //场景加载时不需要销毁的预制体 public GameObject obj; private GameObje...原创 2019-07-14 23:38:55 · 4292 阅读 · 0 评论 -
Unity动态替换材质球
适用于有多个材质的物体public Material material;//更改后的材质球,可拖拽赋值gameObject.GetComponent<MeshRenderer>().materials[0].CopyPropertiesFromMaterial(material);//更改材质球...原创 2018-07-11 10:44:08 · 10353 阅读 · 1 评论