示例#1
0
 void MoveToTarget()
 {
     if (RecreateOwnMathematics.Distance(new RecreateCoordinates(this.transform.position), new RecreateCoordinates(fuelManager.transform.position)) > stoppingDistance)
     {
         transform.position += direction * speed * Time.deltaTime;
     }
 }
示例#2
0
    void TranslateMovement()
    {
        float translation = Input.GetAxis("Vertical") * speed;
        float rotation    = Input.GetAxis("Horizontal") * rotationSpeed;

        translation *= Time.deltaTime;
        rotation    *= Time.deltaTime;

        transform.position = RecreateOwnMathematics.Translate(new RecreateCoordinates(transform.position), new RecreateCoordinates(transform.up), new RecreateCoordinates(0, translation, 0)).ConvertToVector();

        transform.up = RecreateOwnMathematics.Rotate(new RecreateCoordinates(this.transform.up), rotation * 180.0f / Mathf.PI, true).ConvertToVector();
    }
示例#3
0
    void MoveSphere()
    {
        float translation = Input.GetAxis("Vertical") * Speed;
        float horizontal  = Input.GetAxis("Horizontal") * Speed;

        translation *= Time.deltaTime;
        horizontal  *= Time.deltaTime;

        //transform.Translate(new Vector3(0,0,translation));

        this.transform.position = RecreateOwnMathematics.MatrixTranslate(new RecreateCoordinates(this.transform.position, 1), new RecreateCoordinates(horizontal, 0, translation, 1)).ConvertToVector();

        //transform.position = RecreateOwnMathematics.Translate(new RecreateCoordinates(transform.position),new RecreateCoordinates(transform.forward),new RecreateCoordinates(0,0,translation)).ConvertToVector();
    }
示例#4
0
    void Movement()
    {
        float translation = Input.GetAxis("Vertical") * speed;
        float rotation    = Input.GetAxis("Horizontal") * rotationSpeed;

        translation *= Time.deltaTime;
        rotation    *= Time.deltaTime;

        //transform.Translate(new Vector3(0, translation, 0));
        //transform.Rotate(new Vector3(0,0,-rotation));

        transform.position = RecreateOwnMathematics.Translate(new RecreateCoordinates(transform.position), new RecreateCoordinates(transform.up), new RecreateCoordinates(0, translation, 0)).ConvertToVector();

        //My Own Movement drived my own mathematics normal,dot product, angle , rotate and cross product
        transform.up = RecreateOwnMathematics.Rotate(new RecreateCoordinates(transform.up), rotation * Mathf.PI / 180, true).ConvertToVector();
    }
示例#5
0
    void MoveArrayPoints()
    {
        foreach (GameObject p in points)
        {
            RecreateCoordinates position = new RecreateCoordinates(p.transform.position, 1);

            //p.transform.position = RecreateOwnMathematics.MatrixTranslate(position,new RecreateCoordinates(translation.x,translation.y,translation.z,0)).ConvertToVector();

            position = RecreateOwnMathematics.MatrixTranslate(position, new RecreateCoordinates(new Vector3(-c.x, -c.y, -c.z), 0));

            //p.transform.position = RecreateOwnMathematics.MatrixScale(position,scaling.x,scaling.y,scaling.z).ConvertToVector();

            position = RecreateOwnMathematics.MatrixScale(position, scaling.x, scaling.y, scaling.z);

            p.transform.position = RecreateOwnMathematics.MatrixTranslate(position, new RecreateCoordinates(c.x, c.y, c.z, 0)).ConvertToVector();
        }
    }
示例#6
0
    void RotateArrayPoints()
    {
        angle = angle * Mathf.Deg2Rad;

        foreach (GameObject p in points)
        {
            RecreateCoordinates position = new RecreateCoordinates(p.transform.position, 1);

            position = RecreateOwnMathematics.MatrixTranslate(position, new RecreateCoordinates(new Vector3(-c.x, -c.y, -c.z), 0));

            //p.transform.position = RecreateOwnMathematics.MatrixRotate(position,angle.x,true,angle.y,true,angle.z,true).ConvertToVector();

            position = RecreateOwnMathematics.MatrixRotate(position, angle.x, true, angle.y, true, angle.z, true);


            p.transform.position = RecreateOwnMathematics.MatrixTranslate(position, new RecreateCoordinates(c.x, c.y, c.z, 0)).ConvertToVector();
        }
    }
    //Craete my own translate
    static public RecreateCoordinates Translate(RecreateCoordinates position, RecreateCoordinates facing, RecreateCoordinates vector)
    {
        if (RecreateOwnMathematics.Distance(new RecreateCoordinates(0, 0, 0), vector) <= 0)
        {
            return(position);
        }

        float angle      = RecreateOwnMathematics.Angle(vector, facing);
        float worldAngle = RecreateOwnMathematics.Angle(vector, new RecreateCoordinates(0, 1, 0));
        bool  clockwise  = false;

        if (RecreateOwnMathematics.CrossProduct(vector, facing).z < 0)
        {
            clockwise = true;
        }

        vector = RecreateOwnMathematics.Rotate(vector, angle + worldAngle, clockwise);

        float xValue = position.x + vector.x;
        float yValue = position.y + vector.y;
        float zValue = position.z + vector.z;

        return(new RecreateCoordinates(xValue, yValue, zValue));
    }
示例#8
0
 // Update is called once per frame
 void Update()
 {
     //this.transform.position = line.GetPointAt(t).ConvertToVector();
     //this.transform.position = line.Lerp(Time.time * t).ConvertToVector();
     this.transform.position = RecreateOwnMathematics.Lerp(new RecreateCoordinates(start.position), new RecreateCoordinates(end.position), Time.time * t).ConvertToVector();
 }
示例#9
0
 void Movement(float time)
 {
     //this.transform.position = line.GetPointAt(time).ConvertToVector();
     this.transform.position = RecreateOwnMathematics.Lerp(new RecreateCoordinates(start.position), new RecreateCoordinates(end.position), time).ConvertToVector();
 }