Unity基本函数-Random随机数的生成

本文介绍了Unity中Random类的基本使用,包括其静态特性如insideUnitCircle、insideUnitSphere等,以及常用方法Range,用于在指定范围内生成随机数。在游戏开发中,随机数常用于实现各种随机效果,如地图上的野怪刷新位置。
摘要由CSDN通过智能技术生成

前言

游戏开发过程中往往需要一些随机效果,比如在地图上随机刷新野怪,这时就需要使用随机函数Random来完成

1,Random函数有哪些方法

查看Unity官方文档,我们发现Random的静态特性和静态方法有下面的几种:
在这里插入图片描述
具体的解释为:
特性:

  • insideUnitCircle:返回半径为1的圆内的随机点(只读)
  • insideUnitSphere:返回半径为1(只读)的球体内的随机点
  • onUnitSphere:返回半径为1(只读)的球体表面上的随机点
  • rotation:返回随机旋转(只读)
  • rotationUniform:返回具有均匀分布的随机旋转(只读)
  • state:获取/设置随机数生成器的完整内部状态
  • value:返回介于0.0(含)和1.0(含)之间的随机数(只读)

方法:

  • ColorHSV:从HSV和alpha范围生成随机颜色
  • InitState:用种子初始化随机数生成器状态
  • Range:返回介于min [inclusiv
  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,我来解答你的问题。 首先,你可以使用Unity中的NavMesh来实现敌人的巡逻。NavMesh是一种用于处理游戏中角色导航的技术,它将地图分割成多个三角形区域,每个三角形区域都有一个中心点,角色可以在这些中心点之间移动。你可以使用NavMeshAgent组件来控制角色在NavMesh上移动。 其次,你可以使用Random.Range()函数来随机生成目标点。这个函数可以生成一个指定范围内的随机数,你可以将其用于敌人巡逻的目标点生成。 最后,在到达目标点后,你可以使用Coroutine来实现暂停巡逻。Coroutine是Unity中的一种协程技术,它可以让你在代码中实现异步操作。你可以使用Coroutine来实现在到达目标点后暂停一段时间,然后再继续巡逻。 下面是一个简单的示例代码: ```csharp using UnityEngine; using System.Collections; public class EnemyPatrol : MonoBehaviour { public float patrolSpeed = 2f; // 巡逻速度 public float patrolWaitTime = 1f; // 到达目标点后等待时间 public float patrolRadius = 10f; // 巡逻半径 private Vector3 targetPosition; // 目标点位置 private NavMeshAgent navMeshAgent; // NavMeshAgent组件 private Coroutine patrolCoroutine; // 巡逻协程 void Start () { navMeshAgent = GetComponent<NavMeshAgent>(); targetPosition = RandomNavSphere(transform.position, patrolRadius, -1); patrolCoroutine = StartCoroutine(Patrol()); } IEnumerator Patrol() { while (true) { navMeshAgent.SetDestination(targetPosition); while (navMeshAgent.remainingDistance > navMeshAgent.stoppingDistance) { yield return null; } yield return new WaitForSeconds(patrolWaitTime); targetPosition = RandomNavSphere(transform.position, patrolRadius, -1); } } static Vector3 RandomNavSphere(Vector3 origin, float distance, int layermask) { Vector3 randomDirection = Random.insideUnitSphere * distance; randomDirection += origin; NavMeshHit navHit; NavMesh.SamplePosition(randomDirection, out navHit, distance, layermask); return navHit.position; } } ``` 这个示例代码中,我们使用了RandomNavSphere()函数生成随机的目标点。在Patrol()协程中,我们先使用NavMeshAgent设置目标点,然后使用一个while循环等待敌人到达目标点。到达目标点后,我们使用Coroutine提供的WaitForSeconds()函数来等待一段时间,然后再生成新的目标点。这样就可以实现敌人的随机巡逻,并且在到达目标点后暂停巡逻了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心之凌儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值