示例#1
0
    //Bizer적용 움직임테스트
    void BulletBizer(Vector3 target)
    {
        Vector3 pos = transform.position;
        //TODO: t값을 점점빠르게 점점느리게 빨랐다 느려졌다 컨트롤 할수 있게 할것
        float t = 0.0f;

        t += Time.deltaTime / 1f;  //분모가 증가 할수록 전체속도가 느려짐 속도에 영향

        Vector3 dir      = target - transform.position;
        Vector3 Position = Vector3.zero;
        float   viaX     = (target.x + pos.x) / 2; //곡선을 이룰 방향값

        //TODO: 목표물의  In , Out 을 구별해서 보다 정밀하게 할 필요 있음

        float viaY = target.y;

        Utils_Proto.BezierInterpolation2(out Position.x, out Position.y, pos.x, pos.y, viaX, viaY, target.x, target.y, t);
        transform.position = new Vector3(Position.x, Position.y, 0);
        //transform.forward = Vector3.Slerp(transform.forward, dir.normalized, Time.deltaTime);
    }
示例#2
0
    //보간 적용 미사일테스트 toPosition 은 적 타겟임
    void bulletLine(Vector3 toPosition)
    {
        Vector3 pos = transform.position;

        //TODO: t값을 점점빠르게 점점느리게 빨랐다 느려졌다 컨트롤 할수 있게 할것
        float t = 0f;

        t += Time.deltaTime / 1.0f;  //분모가 커질수록 점점 느려짐

        Vector3 dir      = toPosition - transform.position;
        Vector3 Position = Vector3.zero;

        Utils_Proto.LinearInterpolation(out Position.x, out Position.y, transform.position.x, transform.position.y, toPosition.x, toPosition.y, t);

        //z값 특정변경시 주의 필요함
        transform.position = new Vector3(Position.x, Position.y, Position.z);
        Quaternion rotation = Quaternion.LookRotation(dir, Vector3.up);

        transform.rotation = rotation;
    }