コード例 #1
0
ファイル: CarMovement.cs プロジェクト: Wajihullah/Unity-3D
    void OnTriggerEnter2D(Collider2D col)
    {
        //Debug.Log("Triggered "+col.gameObject.name);

        if (col.gameObject.tag == "Collectible")
        {
            GameState.playerCoins = GameState.playerCoins + 2;
            coinText.text         = GameState.playerCoins.ToString();
            Destroy(col.gameObject);
        }
        if (col.gameObject.tag == "Boost")
        {
            carTempSpeed = speed;
            speed        = speed + 2;
            // if(rb!=null){
            //  rb.AddForce(transform)
            // }
        }
        if (col.gameObject.tag == "BoostEnd")
        {
            speed = carTempSpeed;
        }
        else
        {
            ToggleJoint tj = col.gameObject.transform.GetChild(0).GetComponent <ToggleJoint>();
            tj.enabled = true;
        }
    }
コード例 #2
0
    void Update()
    {
        //car.velocity = Vector3.ClampMagnitude(car.velocity,maxSpeed);
        if (Input.GetMouseButton(0) && car != null)
        {
            v = car.velocity;
            //car.velocity = Vector2.zero;
            //car.velocity = v;
            leftSkid.SetActive(true);
            rightSkid.SetActive(true);
            fixedJoint2D.enabled = true;
            lineRenderer         = this.GetComponent <LineRenderer>();
            lineRenderer.SetPosition(0, this.transform.position);
            lineRenderer.startWidth = 0.2f;
            lineRenderer.endWidth   = 0.2f;
            dist = Vector3.Distance(this.transform.position, carObj.transform.position);
            float   x              = Mathf.Lerp(0, dist, 1f);
            Vector3 pointA         = this.transform.position;
            Vector3 pointB         = carObj.transform.position;
            Vector3 pointAlongLine = x * Vector3.Normalize(pointB - pointA) + pointA;
            lineRenderer.SetPosition(1, pointAlongLine);
        }
        if (Input.GetMouseButtonUp(0) && car != null)
        {
            // Vector3 direction = targetTransform.position - carObj.transform.position;
            // print(direction);
            fixedJoint2D.enabled = false;
            leftSkid.SetActive(false);
            rightSkid.SetActive(false);
            //car.velocity = Vector3.ClampMagnitude(car.velocity,0);
            //car.velocity = Vector3.zero;
            car.angularVelocity = 0;
            transform.rotation  = Quaternion.identity;
            //Debug.DrawLine(transform.position,targetTransform.position);
            //Debug.Log("Line drawn");
            ToggleJoint tj = this.GetComponent <ToggleJoint>();
            if (tj.enabled == true)
            {
                tj.enabled = false;
            }
            lineRenderer.enabled = false;
            float step = speed * Time.deltaTime;
            try{
                car.transform.position = Vector3.RotateTowards(car.transform.position, targetTransform.transform.position, step, 0);
            }catch (System.Exception) {}
            //car.angularVelocity -= 0.5f;
            //car.angularVelocity += 0.5f;
            // Vector3 vectorToTarget = transform.GetChild(0).position - carObj.transform.position;
            // float angle = Mathf.Atan2(vectorToTarget.y, vectorToTarget.x) * Mathf.Rad2Deg;
            // Quaternion q = Quaternion.AngleAxis(angle, Vector3.right);
            // carObj.transform.rotation = Quaternion.Slerp(carObj.transform.rotation, q, Time.deltaTime * speed);
            // Vector3 diff = transform.GetChild(0).position - carObj.transform.position;
            // diff.Normalize();
            //float rot_z = Mathf.Atan2(diff.y,diff.x) * Mathf.Rad2Deg;
            // float rot_z = Mathf.Lerp(carObj.transform.rotation.z,transform.GetChild(0).rotation.z,5.0f);

            // carObj.transform.rotation = Quaternion.Euler(0f,0f,turn);
            //car.inertia = 3.0f;
            // Debug.Log("Up");
            //carObj.transform.rotation = targetTransform.rotation;
            // Vector2 relativePos = transform.GetChild(0).position - carObj.transform.position;
            // Quaternion rotation = Quaternion.LookRotation(relativePos);
            // carObj.transform.rotation = rotation;
            // carObj.transform.Rotate(0,0,0);
            // carObj.transform.position = transform.GetChild(0).position + transform.GetChild(0).TransformDirection(new Vector3(0,0,0));
            // // Debug.Log(car.transform.position);
            // // Debug.Log(targetTransform.position);
            // Vector3 moveDir = (transform.GetChild(0).position - carObj.transform.position).normalized;
            // carObj.transform.position += moveDir*3.0f*Time.deltaTime;
        }
        // if(Input.GetMouseButtonUp(0)){


        //  //car.AddTorque(20);
        //  // car.transform.up = targetTransform.position;
        //  Debug.Log ("Up");
        //  // car.velocity = Vector2.zero;
        //  // car.velocity = v;
        //  //car.transform.LookAt(targetTransform);

        //  //car.transform.position = targetTransform.position;
        //  // Vector3 vectorToTarget = targetTransform.position - car.transform.position;
        //  // float angle = Mathf.Atan2(vectorToTarget.y, vectorToTarget.x) * Mathf.Rad2Deg;
        //  // Quaternion q = Quaternion.AngleAxis(angle, Vector3.right);
        //  // car.transform.rotation = Quaternion.Slerp(car.transform.rotation, q, Time.deltaTime * speed);
        //  //car.transform.rotation = Quaternion.Euler (0, 0, -90);
        //  //car.transform.rotation = Quaternion.RotateTowards (car.transform.rotation,Quaternion.AngleAxis(-90,Vector3.forward),10*2f*Time.deltaTime);
        //  //car.freezeRotation = true;
        //      //					Quaternion.Lerp (car.transform.rotation,Quaternion.Euler(0,0,-90), Time.time*speed);
        // }
        // else{

        //  //fixedJoint2D.enabled = false;
        // }


        // if(RotationFreeze()){
        //  if(Time.time>3.0f){
        //          car.freezeRotation = false;
        //  }
        // }
        if (car != null)
        {
            carV = car.velocity;
        }
    }