Exemplo n.º 1
0
    private void FixedUpdate()
    {
        _sine = Sine(_jointFrequency, _jointAmplitude, _jointPhase);
        for (var i = 0; i < _joints.Count; i++)
        {
            _joints[i].targetRotation = Quaternion.Euler(_sine * new Vector3(5F, 0F, 0F));
        }

        if (EyeScript.Goal)
        {
            TargetDirection = (EyeScript.Goal.transform.position - Root.transform.position).normalized;
        }

        if (TargetDirection != Vector3.zero)
        {
            _lookRotation = Quaternion.LookRotation(TargetDirection);
        }

        var absSine = Mathf.Abs(_sine);
        var posSine = Math.Max(_sine, 0);

        Root.transform.rotation =
            Quaternion.Slerp(Root.transform.rotation, _lookRotation, Time.deltaTime * (absSine * 3F));

        if (posSine == 0)
        {
            _direction = Root.transform.forward;
        }

        Root.GetComponent <Rigidbody>()
        .AddForce(Mathf.Abs(_forceScalar) * _direction * posSine * ChromosomeComposition.GetBranchCount());
    }
Exemplo n.º 2
0
    static string DeriveNameFromLimbs()
    {
        // read limb count
        int           limbCount    = ccComposition.GetBranchCount();
        List <string> latinNumbers = new List <string>();

        latinNumbers.Add("uni");
        latinNumbers.Add("duo");
        latinNumbers.Add("tri");
        latinNumbers.Add("quart");
        latinNumbers.Add("quint");
        latinNumbers.Add("se");
        latinNumbers.Add("sept");
        latinNumbers.Add("oct");

        string limbName = latinNumbers[limbCount - 1];



        if (ccComposition.NumRecurrences.Length > 5 && ccComposition.NumRecurrences.Length < 9)
        {
            limbName += "aliq"; // some
        }
        else if (ccComposition.NumRecurrences.Length > 0 && ccComposition.NumRecurrences.Length <= 5)
        {
            limbName += "pauc"; // few
        }
        else if (ccComposition.NumRecurrences.Length >= 9)
        {
            limbName += "mult"; // many
        }
        limbName += "peri";

        return(limbName);  // return and capitalise
    }
Exemplo n.º 3
0
    private void Update()
    {
        GetInput_Windows();
        ProcessInput();

        if (Input.GetMouseButtonDown(0))
        {
            RaycastHit hit;
            Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            if (Physics.Raycast(ray, out hit, 60))
            {
                if (hit.collider.transform.root.GetComponent <Creature>())
                {
                    GameObject crt = hit.collider.transform.root.gameObject;

                    Creature crtScript             = crt.GetComponent <Creature>();
                    ChromosomeComposition csScript = crtScript.ChromosomeComposition;

                    crtName.text     = "Name: " + crt.name;
                    crtType.text     = "Type: " + crtScript.TypeOfCreature;
                    crtState.text    = "State: " + crtScript.State;
                    crtAge.text      = "Age: " + crtScript.Age;
                    crtEnergy.text   = "Energy: " + crtScript.Energy;
                    crtGenetics.text = "Chromosome: " + "\n" +
                                       "\t Colour: " + csScript.GetColour() + "\n" +
                                       "\t Branches: " + csScript.GetBranchCount() + "\n" +
                                       "\t Limbs: " + csScript.NumRecurrences.Length;
                    canvas.active = true;
                }
                else
                {
                    canvas.active = false;
                }
            }
            else
            {
                canvas.active = false;
            }
        }
    }