コード例 #1
0
    private void OnVolumeTriggerEnter(TriggerVolume triggerVolume, Collider collider)
    {
        BaseUnit targetBaseUnit = collider.gameObject.GetComponent <BaseUnit>();

        LineRenderDisplay lineRenderDisplayClone = Instantiate(lineRenderDisplayPrefab);

        lineRenderDisplayClone.transform.parent        = this.transform;
        lineRenderDisplayClone.transform.localPosition = Vector3.zero;
        lineRenderDisplayClone.transform.localRotation = Quaternion.identity;

        lineRenderDisplayClone.Inialize(this, targetBaseUnit);

        lineRenderDisplays.Add(lineRenderDisplayClone);


        if (!colorProportion.ContainsKey(targetBaseUnit.Color))
        {
            colorProportion.Add(targetBaseUnit.Color, 0.0f);
        }

        colorProportion[targetBaseUnit.Color] += 1.0f;


        UpdateColor();
    }
コード例 #2
0
 private LineRenderDisplay GetLineRenderOf(BaseUnit targetBaseUnit)
 {
     for (int i = 0; i < lineRenderDisplays.Count; i++)
     {
         LineRenderDisplay lineRender = lineRenderDisplays[i];
         if (lineRender.BaseUnit == targetBaseUnit)
         {
             return(lineRender);
         }
     }
     return(null);
 }
コード例 #3
0
    private void OnVolumeTriggerExit(TriggerVolume triggerVolume, Collider collider)
    {
        BaseUnit          targetBaseUnit           = collider.gameObject.GetComponent <BaseUnit>();
        LineRenderDisplay currentLineRenderDisplay = GetLineRenderOf(targetBaseUnit);

        lineRenderDisplays.Remove(currentLineRenderDisplay);
        Destroy(currentLineRenderDisplay.gameObject);


        colorProportion[targetBaseUnit.Color] -= 1.0f;

        if (colorProportion[targetBaseUnit.Color] <= 0.0f)
        {
            colorProportion.Remove(targetBaseUnit.Color);
        }

        UpdateColor();
    }