【问题标题】:Simple radar 2D简单的雷达 2D
【发布时间】:2017-12-12 17:16:20
【问题描述】:

我有一个问题。对于一个简单的游戏,我需要一个即兴的、简单的雷达。到目前为止我所做的一切就是你在图片中看到的。只有那条线被旋转。

现在我想让那个蓝点在圆圈的某个地方随机出现,当雷达靠近他时出现。

using EduUtils.Events;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;

public class RadarScript : MonoBehaviour
{
   public GameObject radarLine;
   private Vector3 rotationEuler;

   void Start ()
   {

   }
   private void Update()
   {
       rotationEuler -= Vector3.forward * 50 * Time.deltaTime;
       radarLine.transform.rotation = Quaternion.Euler(rotationEuler);
   }

}

此脚本仅进行旋转,但我正在尝试考虑如何在旋转期间使该点出现在雷达前面。???

【问题讨论】:

  • 你知道蓝点在哪里,你知道雷达线在哪里——那么决定是否显示蓝点到底有什么问题?
  • 最初它是不活动的,只有当它进入雷达波束时才被观察到,并且每次改变它的位置
  • ????你很难知道它是否进入了雷达波束 - 即使它正在移动,你也知道它在哪里以及雷达波束在哪里 - 我假设你正在控制两者。

标签: c# unity3d


【解决方案1】:

您可以在点进入雷达扇区时启用渲染器:

public class RadarScript : MonoBehaviour {

    public GameObject radarLine;
    private Vector3 rotationEuler;

    private void Update()
    {
        rotationEuler -= Vector3.forward * 50 * Time.deltaTime;
        radarLine.transform.rotation = Quaternion.Euler(rotationEuler);
        var sectorA = radarLine.transform.up;
        var sectorB = -radarLine.transform.right;
        var allDots = GetComponentsInChildren<RadarDot> ();
        foreach (var dot in allDots) {
            var a = Vector3.Dot (dot.transform.position, sectorA);
            var b = Vector3.Dot (dot.transform.position, sectorB);
            dot.GetComponent<Renderer> ().enabled = (a > 0 && b < 0);
        }
    }
}

这里的想法是使用点积符号来检查点是否位于两个扇区向量之间。示例中的 RadarDot 只是一个随机位置的精灵:

public class RadarDot : MonoBehaviour {

    // Use this for initialization
    void Start () {
        var randomPos = Random.insideUnitCircle;
        transform.position = new Vector3 (randomPos.x, randomPos.y);
        GetComponent<Renderer> ().enabled = false;

    }
}

【讨论】:

    猜你喜欢
    • 2017-09-27
    • 1970-01-01
    • 2020-07-02
    • 1970-01-01
    • 2014-08-11
    • 1970-01-01
    • 2013-07-28
    • 2015-09-08
    • 1970-01-01
    相关资源
    最近更新 更多