示例#1
0
 private void Awake()
 {
     if (myZoneType == TypeOfZone.Conflict || myZoneType == TypeOfZone.Neutral)
     {
         foreach (var zoneCollider in zoneColliders)
         {
             if (zoneCollider.GetComponent <Zone>())
             {
                 continue;
             }
             var s = zoneCollider.gameObject.AddComponent <Zone>();
             s.master             = this;
             s.zoneId             = zoneID;
             s.PerformOnCollision = PerformOnCollision;
         }
     }
     if (myZoneType == TypeOfZone.Beneficial)
     {
         if (zoneCollider.GetComponent <Zone>())
         {
             return;
         }
         var s = zoneCollider.gameObject.AddComponent <Zone>();
         s.master             = this;
         s.zoneId             = zoneID;
         s.PerformOnCollision = PerformOnCollision;
     }
 }
示例#2
0
 private void SphereToSphere()
 {
     if (CollisionUtility.Intersect(_sphereA, _sphereB))
     {
         _sphereA.GetComponent <Renderer>().sharedMaterial = _isCollidedMaterial;
         _sphereB.GetComponent <Renderer>().sharedMaterial = _isCollidedMaterial;
     }
     else
     {
         _sphereA.GetComponent <Renderer>().sharedMaterial = _notCollidedMaterial;
         _sphereB.GetComponent <Renderer>().sharedMaterial = _notCollidedMaterial;
     }
 }
示例#3
0
    private void FixedUpdate()
    {
        if (targetMarker.target != null)
        {
            ResourceField.text = targetMarker.target.ResourceAmount.ToString();
        }
        TimerField.text = Timer.seconds.ToString();
        if (Input.GetMouseButtonDown(0))
        {
            RaycastHit hit;
            Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);

            if (Physics.Raycast(ray, out hit))
            {
                SphereCollider sphere = hit.collider as SphereCollider;
                if (sphere != null)
                {
                    targetMarker.EnableTarget(sphere.GetComponent <Agent>());
                }
            }
        }
        if (Input.GetKeyDown(KeyCode.Escape))
        {
            targetMarker.DisableTarget();
        }
    }
示例#4
0
    protected virtual void Start()
    {
        if (_sensorTrigger != null)
        {
            AISensor sensor = _sensorTrigger.GetComponent <AISensor>();
        }

        // 获取物体上所有的AIState
        AIState[] states = GetComponents <AIState>();

        foreach (AIState s in states)
        {
            if (s != null && !_allStates.ContainsKey(s.GetStateType()))
            {
                _allStates[s.GetStateType()] = s;
                s.SetStateMachine(this);
            }
        }

        if (_allStates.ContainsKey(_currentStateType))
        {
            _currentState = _allStates[_currentStateType];
            _currentState.OnEnterState();
        }
        else
        {
            _currentState = null;
        }
    }
示例#5
0
    float calculatedGrav; // gravity over time

    void Start()
    {
        me = GetComponent <SphereCollider>();                  // get collider for mass

        mass = me.GetComponent <SphereCollider>().radius;      // get mass

        planetT = GameObject.FindGameObjectsWithTag("planet"); //??? //.GetComponent<GameObject>();
    }