Inheritance: MonoBehaviour
    public override void OnInspectorGUI()
    {
        TriggerZone trigger = target as TriggerZone;

        if (trigger.Collider == null)
        {
            trigger.Collider = trigger.GetComponent <Collider>();
        }

        if (trigger.Collider != null)
        {
            trigger.Collider.isTrigger = true;

            base.OnInspectorGUI();
            return;
        }

        if (GUILayout.Button("Box Collider"))
        {
            trigger.gameObject.AddComponent <BoxCollider>();
        }
        else if (GUILayout.Button("Sphere Collider"))
        {
            trigger.gameObject.AddComponent <SphereCollider>();
        }
    }
示例#2
0
    public void CarThroughCheckpoint(TriggerZone triggerZone, Transform carTransform)
    {
        int         nextCheckpointSingleIndex = nextCheckpointSingleIndexList[carTransformList.IndexOf(carTransform)];
        PlayerStats thePlayer = carTransform.GetComponent <PlayerStats>();

        thePlayer.CurrentZone = nextCheckpointSingleIndex;
        TriggerZone lastCheckPoint = triggerZones[(nextCheckpointSingleIndex + 1) % triggerZones.Count];

        thePlayer.lastZone = lastCheckPoint.gameObject.transform;

        if (triggerZones.IndexOf(triggerZone) == nextCheckpointSingleIndex)
        {
            //Debug.Log("---------------Correct------------------------");
            nextCheckpointSingleIndexList[carTransformList.IndexOf(carTransform)] = (nextCheckpointSingleIndex + 1) % triggerZones.Count;
            Debug.Log(nextCheckpointSingleIndex);
            if (nextCheckpointSingleIndex == 0)
            {
                gameManager.countRound(carTransform);
            }
        }
        else
        {
            //Debug.Log("Wrong");
        }
    }
        private void OnEnteredTransitionZone(TriggerZone zone)
        {
            if (zone is StartTransitionZone transitionZone)
            {
                _pathMover.Setup(transitionZone.Path, transitionZone.Speed);
            }

            EnteredTransitionZone.Invoke();
        }
        private static void LinkActionToTriggerZoneArray(TriggerZone trigger, SerializedObject triggerObject, ExampleAction action)
        {
            SerializedProperty actionProperty = triggerObject.FindProperty("_actions");

            actionProperty.arraySize++;
            triggerObject.ApplyModifiedProperties();
            GuidReference guid = new GuidReference(action);

            trigger.SetActionByIndex(guid, 0);
        }
        private void OnEscapedTransitionZone(TriggerZone zone)
        {
            if (zone is FinishTransitionZone transitionZone)
            {
                var moveDirection = transitionZone.MoveDirectionAfterTransition;
                _physicalMover.Setup(moveDirection);
                _collisionMover.Setup(moveDirection);
            }

            EscapedTransitionZone.Invoke();
        }
        private static ExampleAction AddActionGuid(TriggerZone trigger)
        {
            GameObject actionChild = new GameObject("Action of " + trigger.name);

            actionChild.transform.SetParent(trigger.transform);
            actionChild.transform.localPosition = new Vector3(0, 0, 1);
            ExtGameObjectIcon.SetIcon(actionChild, ExtGameObjectIcon.Icon.CircleRed);
            ExampleAction action = actionChild.AddComponent(typeof(ExampleAction)) as ExampleAction;

            return(action);
        }
示例#7
0
    // Start is called before the first frame update
    void Start()
    {
        thePlayer = this.GetComponent <PlayerStats>();

        triggerZones = new List <TriggerZone>();
        foreach (Transform checkpointSingleTransform in Checkpoints)
        {
            TriggerZone triggerZone = checkpointSingleTransform.GetComponent <TriggerZone>();
            triggerZones.Add(triggerZone);
        }

        NextCheckPoint = 1;
        target         = triggerZones[NextCheckPoint].transform;
        agent          = GetComponent <NavMeshAgent>();
    }
示例#8
0
    void PickUpCell()
    {
        UIManager.CheckAndActivatePowerImg();

        //GetComponent<AudioSource>().PlayOneShot(collectSound);
        AudioSource.PlayClipAtPoint(collectSound, transform.position);

        charge++;

        UIManager.ChangePowerImg(hudCharge[charge]);
        meter.material.mainTexture = meterCharge[charge];

        if (FinishedCollectCharge())
        {
            TriggerZone.ChangeDoorLight(Color.green);
        }
    }
示例#9
0
    private void Awake()
    {
        Transform checkpointsTransform = transform.Find("Checkpoints");

        triggerZones = new List <TriggerZone>();
        foreach (Transform checkpointSingleTransform in checkpointsTransform)
        {
            TriggerZone triggerZone = checkpointSingleTransform.GetComponent <TriggerZone>();
            triggerZone.SetTrackCheckPoints(this);
            triggerZones.Add(triggerZone);
        }

        nextCheckpointSingleIndexList = new List <int>();
        foreach (Transform carTransform in carTransformList)
        {
            nextCheckpointSingleIndexList.Add(0);
        }
    }
示例#10
0
 void CheckGTekOverlapPositions(List <Vector3> spots)
 {
     foreach (Vector3 spot in spots)
     {
         Vector2    overlapPoint = new Vector2(spot.x, spot.y);
         Collider2D p            = Physics2D.OverlapPoint(overlapPoint, layerMask.value);
         if (p)
         {
             TriggerZone tZ = p.gameObject.GetComponent <TriggerZone>();
             if (tZ)
             {
                 Vector2 spot2D = new Vector2(spot.x, spot.y);
                 tZ.OnTriggerZone(spot2D);
             }
             break;
         }
         else
         {
             hitObject = null;
         }
     }
 }
示例#11
0
 private void OnEnteredLoseZone(TriggerZone zone)
 {
     EnteredLoseZone.Invoke();
 }
示例#12
0
 private void OnEnteredFinishZone(TriggerZone zone)
 {
     EnteredFinishZone.Invoke();
 }