Inheritance: MonoBehaviour
Beispiel #1
0
    static int SortByDistance(SteeringAgent a1, SteeringAgent a2)
    {
        float distanceToPointA1 = Vector3.Distance(m_Hitpoint, a1.GetPosition());
        float distanceToPointA2 = Vector3.Distance(m_Hitpoint, a2.GetPosition());

        return(distanceToPointA1.CompareTo(distanceToPointA2) * -1);
        //return distanceToPointA1.CompareTo(distanceToPointA2);
    }
Beispiel #2
0
 public Flocking(SteeringAgent owner)
     : base(owner)
 {
     addBehaviour(new Arrival(owner), 1f);
     addBehaviour(new Separation(owner), 1f);
     addBehaviour(new Cohesion(owner), 0.2f);
     addBehaviour(new Alignment(owner), 1f);
 }
Beispiel #3
0
        public void Init(SteeringAgent agent, SteeringController steering, RigidbodyMovementController physicsController)
        {
            this.agent             = agent;
            this.steering          = steering;
            this.physicsController = physicsController;
            pathManager            = PathManager.Instance;

            TargetPosition     = agent.transform.position + agent.transform.forward;
            racingLineProgress = pathManager.RacingLinePath.path.GetClosestProgressOnPath(agent.transform.position);
        }
Beispiel #4
0
    public override SteeringOutput CalculateSteering(SteeringAgent agent)
    {
        SteeringOutput steering = new SteeringOutput();

        steering.LinearVelocity = m_Target - agent.GetPosition();
        steering.LinearVelocity.Normalize();
        steering.LinearVelocity *= agent.GetMaxLinearSpeed();
        steering.IsValid         = true;

        return(steering);
    }
Beispiel #5
0
        // Awake is called when the script instance is being loaded
        private void Awake()
        {
            for (int i = 0; i < spawnCount; i++)
            {
                Vector3       pos  = transform.position + Random.insideUnitSphere * spawnRadius;
                SteeringAgent boid = Instantiate(prefab);
                boid.transform.position = pos;
                boid.transform.forward  = Random.insideUnitSphere.normalized;

                boid.SetColor(Random.ColorHSV(0, 1, 1, 1, 1, 1));
            }
        }
Beispiel #6
0
    // Use this for initialization
    void Start()
    {
        if (globalGameScript == null)
        {
            globalGameScript = GameObject.Find("GlobalGameScript").GetComponent <GlobalGameScript>();
        }

        steeringAgent = GetComponent <SteeringAgent>();
        seekScript    = GetComponent <Seek>();

        startingPosition = transform.position;        // for debugging
    }
Beispiel #7
0
    public override SteeringOutput CalculateSteering(SteeringAgent agent)
    {
        Vector3 offset = agent.GetVelocity();

        offset.Normalize();
        offset *= m_OffsetDistance;

        m_WanderAngle += Random.Range(-0.5f, 0.5f) * m_MaxAngleChange;
        Vector3 circleOffset = new Vector3(Mathf.Cos(m_WanderAngle) * m_Radius, 0, Mathf.Sin(m_WanderAngle) * m_Radius);

        m_Target = agent.GetPosition() + offset + circleOffset;

        return(base.CalculateSteering(agent));
    }
Beispiel #8
0
    public override Vector3 UpdateBehaviour(SteeringAgent steeringAgent)
    {
        Vector3 targetPosition = steeringAgent.seekTarget.transform.position;


        Vector3 leftRay   = transform.position;
        Vector3 rightRay  = transform.position;
        Vector3 direction = Vector3.Normalize(targetPosition - transform.position);



        desiredVelocity  = direction * steeringAgent.maxSpeed;
        steeringVelocity = (desiredVelocity - steeringAgent.currentVelocity) * steeringAgent.seekWeight;
        return(steeringVelocity);
    }
Beispiel #9
0
    public override Vector3 UpdateBehaviour(SteeringAgent steeringAgent)
    {
        var desiredVelocity = GetWanderForce();

        desiredVelocity = desiredVelocity.normalized * steeringAgent.maxSpeed;

        steeringVelocity = desiredVelocity - velocity;
        steeringVelocity = Vector3.ClampMagnitude(steeringVelocity, steeringAgent.maxSteering);

        velocity = Vector3.ClampMagnitude(velocity + steeringVelocity, steeringAgent.maxSpeed);
        //transform.position += velocity * Time.deltaTime;
        transform.up = velocity.normalized;

        steeringVelocity = (desiredVelocity - steeringAgent.currentVelocity) * steeringAgent.wanderWeight;
        return(steeringVelocity);
    }
Beispiel #10
0
    public override SteeringOutput CalculateSteering(SteeringAgent agent)
    {
        SteeringOutput output = new SteeringOutput();

        Vector3 linearVelocity = (_target - agent.transform.position).normalized;

        if ((_target - agent.transform.position).sqrMagnitude > (_nearEnoughDist * _nearEnoughDist))
        {
            linearVelocity *= agent.GetMaxLinearVelocity();
        }
        else
        {
            linearVelocity *= 0.01f;
        }

        output.LinearVelocity = linearVelocity;
        return(output);
    }
Beispiel #11
0
 private void Start()
 {
     _currentTypeBuster = TypeBuster.EMPTY;
     _audioSource       = GetComponent <AudioSource>();
     GameManagerOffline.S._players.Add(gameObject);
     _rigidbody     = GetComponent <Rigidbody>();
     _transform     = GetComponent <Transform>();
     _steeringAgent = GetComponent <SteeringAgent>();
     _steering      = SteeringJoystick;
     if (_steeringAgent == null)
     {
         GameManagerOffline.S._activateBusterLeft.onClick.AddListener(UsingCurrentBuster);
         GameManagerOffline.S._activateBusterRight.onClick.AddListener(UsingCurrentBuster);
         GameManagerOffline.S._activateImpactLeft.GetComponent <ButtonImpact>()._impact       += UsingImpact;
         GameManagerOffline.S._activateImpactRight.GetComponent <ButtonImpact>()._impact      += UsingImpact;
         GameManagerOffline.S._activateImpactLeft.GetComponent <ButtonImpact>()._beginImpact  += ScaleRightHand;
         GameManagerOffline.S._activateImpactRight.GetComponent <ButtonImpact>()._beginImpact += ScaleRightHand;
     }
 }
Beispiel #12
0
    public override SteeringOutput CalculateSteering(SteeringAgent agent)
    {
        Vector3 offset = agent.RigidB.velocity;

        offset.Normalize();
        offset *= _offset;

        Vector3 circleOffset = new Vector3(Mathf.Cos(_wanderAngle) * _radius, 0f, Mathf.Sin(_wanderAngle) * _radius);

        _wanderAngle += Random.Range(0f, 1f) * _maxAngleChange - (_maxAngleChange * 0.5f);

        Vector3 newTarget = agent.transform.position + offset + circleOffset;

        SteeringOutput output = new SteeringOutput();

        Vector3 linearVelocity = (newTarget - agent.transform.position).normalized;

        linearVelocity       *= agent.GetMaxLinearVelocity();
        output.LinearVelocity = linearVelocity;

        return(output);
    }
Beispiel #13
0
 // Use this for initialization
 void Start()
 {
     steeringAgent = this.GetComponent <SteeringAgent>();
 }
Beispiel #14
0
	protected void characterStart(){
		//script of same GameObject initiation
		seekScript = GetComponent<Seek> ();
		arriveScript = GetComponent<Arrive> ();
		steeringScript = GetComponent<SteeringAgent> ();
		alignScript = GetComponent<Align> ();
		ai = GetComponent<SorcererAI>();
		playerNetworkScript = GetComponent<CharacterNetworkScript>();
		basicAttackScript = GetComponent<BasicAttack> ();

		sphere = GameObject.CreatePrimitive (PrimitiveType.Sphere);
		sphere.renderer.castShadows = false;
		sphere.renderer.receiveShadows = false;
		sphere.transform.parent = transform;
		sphere.transform.localScale = new Vector3 (1.0f, 1.0f, 1.0f);
		sphere.gameObject.layer = LayerMask.NameToLayer ("Minimap");


		accuracy = 0.8f;

		attacking = false;
		stopMoving ();
	}
Beispiel #15
0
 // Use this for initialization
 protected virtual void Start()
 {
     graph = GetComponent<Graph> ();
     agent = GetComponent<SteeringAgent> ();
     seekScript = GetComponent<Seek> ();
     arriveScript = GetComponent<Arrive> ();
     characterNode = GetComponent<Node> ();
     openList = new List<Node>();
     closedList = new List<Node>();
     path = new List<Node> ();
     pathIndex = 0;
     DontDestroyOnLoad (gameObject);
 }
	void Awake(){
		agent = GameObject.FindObjectOfType(typeof(SteeringAgent))as SteeringAgent;
		agent.ResetVelocities();
	}
Beispiel #17
0
 public abstract Vector3 UpdateBehaviour(SteeringAgent steeringAgent);
	// Use this for initialization
	void Awake () 
	{
		hault = false;
		agent = GetComponent<SteeringAgent> ();
	}
Beispiel #19
0
    void Start() {
		steeringScript = gameObject.GetComponent<SteeringAgent> ();
		target = steeringScript.targetPosition;
    }
Beispiel #20
0
 public abstract SteeringOutput CalculateSteering(SteeringAgent agent);
Beispiel #21
0
 public AgentInput(SteeringAgent agent)
 {
     this.agent = agent;
 }
 public SteeringBehavior(SteeringAgent agent)
 {
     this.agent = agent;
 }
 public override ISteeringBehaviour CreateInstance(SteeringAgent agent)
 {
     return(new ObstacleAvoidance(agent, this));
 }
 public override ISteeringBehaviour CreateInstance(SteeringAgent agent) {
     return new Cohesion(agent, this);
 }
 public virtual void Init(SteeringAgent agent)
 {
     steeringAgent = agent;
 }
 public override ISteeringBehaviour CreateInstance(SteeringAgent agent)
 {
     return(new Separation(agent, this));
 }
Beispiel #27
0
 public Cohesion(SteeringAgent agent, CohesionData data) : base(agent, data)
 {
 }
Beispiel #28
0
    // Update is called once per frame
    public virtual SteeringOutput CalculateSteering(SteeringAgent agent)
    {
        SteeringOutput steering = new SteeringOutput();

        return(steering);
    }
Beispiel #29
0
 public ObstacleAvoidance(SteeringAgent agent, ObstacleAvoidanceData data) : base(agent, data)
 {
 }
Beispiel #30
0
 public void Init(SteeringAgent agent, SteeringController steering, RigidbodyMovementController controller)
 {
     this.agent      = agent;
     this.steering   = steering;
     this.controller = controller;
 }
Beispiel #31
0
 public Separation(SteeringAgent agent, SeparationData data) : base(agent, data)
 {
 }
Beispiel #32
0
 void Start()
 {
     agent = GetComponent <SteeringAgent>();
     agent.RegisterSteeringBehaviour(this);
 }
Beispiel #33
0
    void Awake()
    {
        steeringAgent = GetComponent<SteeringAgent>();
        steeringSeek = GetComponent<Seek>();
        steeringArrive = GetComponent<Arrive>();
        //steeringFlee = GetComponent<SteeringFlee>();
        //steeringWander = GetComponent<SteeringWander>();

        steeringAgent.enabled = true;
        //Wander();

        InitBT();
        bt.Start();
    }
Beispiel #34
0
 void Start()
 {
     mAgent       = GetComponent <SteeringAgent>();
     mCurrentMode = mNPCMode;
     ChangeMode();
 }
 public abstract ISteeringBehaviour CreateInstance(SteeringAgent agent);