public void Init() { int randomInt = UnityEngine.Random.Range(0, 360); Vector2 dir = Vector2.up; dir = Vector2DFunctions.RotateVec(dir, randomInt); Debug.Log("random DIR:" + dir); _info = GetComponent <PhysicsInfo>(); _info.Speed = _speed; _info.Direction = dir.normalized; _info.OldPosition = Vector2DFunctions.GetTransform2D(this); }
public override void Step() { if (!Static) { Info.OldPosition = Vector2DFunctions.GetTransform2D(this); Vector2DFunctions.Update2DTransform(Info.NewPosition, this); WriteAxises(); // Debug.Log("not static"); if (Info.mover) { Info.mover.Step(); // Debug.Log("has mover"); } } }
// Start is called before the first frame update void Start() { Info = GetComponent <PhysicsInfo>(); Info.OldPosition = new Vector2(transform.position.x, transform.position.y); Info.NewPosition = new Vector2(transform.position.x, transform.position.y); _lineCenter = Info.OldPosition; float length = transform.localScale.y; Vector3 orientation = transform.eulerAngles; Vector2 dir = Vector2.up; dir = Vector2DFunctions.RotateVec(dir, orientation.z); _lineStart = -dir * length / 2 + _lineCenter; _lineEnd = dir * length / 2 + _lineCenter; _lineDirVec = dir; }
public override void InitPhysicsComponent() { Info = GetComponent <PhysicsInfo>(); radiusX = transform.localScale.x * 0.5f; radiusY = transform.localScale.y * 0.5f; Info.OldPosition = Vector2DFunctions.GetTransform2D(this); Info.NewPosition = Info.OldPosition; Axises = new Axis[4]; Info.verticies = new Vector2[4]; Info.IsStatic = Static; Info.radius = transform.localScale.x / 2; WriteAxises(); if (GetComponent <MoverComponent>()) { Info.mover = GetComponent <MoverComponent>(); Info.mover.Init(); Info.Speed = Info.mover.GetSpeed(); } }
private void WriteAxises() { float rotationAngle = transform.eulerAngles.z; Vector2 upVec = Vector2.down; upVec = Vector2DFunctions.RotateVec(upVec, rotationAngle); upVec = upVec.normalized * radiusY; Vector2 rightVec = Vector2.right; rightVec = Vector2DFunctions.RotateVec(rightVec, rotationAngle); rightVec = rightVec.normalized * radiusX; Info.verticies[0] = Info.OldPosition - rightVec - upVec; Info.verticies[1] = Info.OldPosition + rightVec - upVec; Info.verticies[2] = Info.OldPosition + rightVec + upVec; Info.verticies[3] = Info.OldPosition - rightVec + upVec; Axises[0] = new Axis(Info.verticies[0], Info.verticies[1]); Axises[1] = new Axis(Info.verticies[1], Info.verticies[2]); Axises[2] = new Axis(Info.verticies[2], Info.verticies[3]); Axises[3] = new Axis(Info.verticies[0], Info.verticies[3]); }
public void UpdateComponent() { Vector2DFunctions.Update2DTransform(Info.NewPosition, this); }