void Match(CC_Robot otherBot) { EnterMatchedState(); otherBot.EnterMatchedState(); CC_GameplayManager.instance.ScoreMatch(this, otherBot); }
private void OnCollisionEnter(Collision col) { //if(state == State.KNOCK_BACK) //{ // ContactPoint cp = col.GetContact(0); // if (cp.otherCollider.gameObject.layer == LayerMask.NameToLayer("Default")) // { // Debug.Log("Bounce off wall: " + cp.normal + " New Velocity is: " + Vector3.Reflect(myRigidbody.velocity, cp.normal)); // myRigidbody.velocity = Vector3.Reflect(myRigidbody.velocity, cp.normal); // } //} ContactPoint cp = col.GetContact(0); CC_Robot otherBot = cp.otherCollider.gameObject.GetComponent <CC_Robot>(); if (otherBot != null && otherBot.type == type) { if (otherBot.state != State.MATCHED) { Match(otherBot); } } }
public void SetAimVector(Vector3 aim) { aimVector = aim; transform.rotation = Quaternion.LookRotation(aim, Vector3.up); RaycastHit hit; if (Physics.Raycast(transform.position, transform.forward, out hit, 100.0f, laserMask)) { aimLaser[0].transform.localScale = new Vector3(aimLaser[0].transform.localScale.x, aimLaser[0].transform.localScale.y, hit.distance); if (hit.collider.gameObject.layer == LayerMask.NameToLayer("Default")) { Vector3 reflectVector = Vector3.Reflect(aimVector, hit.normal); //Debug.Log("Hit normal: " + hit.normal); aimLaser[1].transform.rotation = Quaternion.LookRotation(reflectVector, Vector3.up); aimLaser[1].SetActive(true); aimLaser[1].transform.position = hit.point; if (Physics.Raycast(aimLaser[1].transform.position + reflectVector * .1f, aimLaser[1].transform.forward, out hit, 100.0f, laserMask)) { aimLaser[1].transform.localScale = new Vector3(aimLaser[1].transform.localScale.x, aimLaser[1].transform.localScale.y, hit.distance); if (hit.collider.gameObject.layer == LayerMask.NameToLayer("Robot")) { currentTarget = hit.collider.GetComponent <CC_Robot>(); targetDirection = reflectVector; } else { currentTarget = null; } } else { aimLaser[1].SetActive(false); } } else if (hit.collider.gameObject.layer == LayerMask.NameToLayer("Robot")) { currentTarget = hit.collider.GetComponent <CC_Robot>(); targetDirection = aimVector; aimLaser[1].SetActive(false); } } }
void SpawnRobot() { spawnTimer = currentSpawnDelay; Vector3 spawnPosition = spawnLine.transform.position + Random.Range(-7.0f, 7.0f) * Vector3.right; GameObject r = GameObject.Instantiate(robotPrefabs[Random.Range(0, robotPrefabs.Length)].gameObject, transform); CC_Robot rComp = r.GetComponent <CC_Robot>(); robots.Add(rComp); rComp.Spawn(spawnPosition); }
public void ScoreMatch(CC_Robot a, CC_Robot b) { }
public void KillRobot(CC_Robot r) { robots.Remove(r); GameObject.Destroy(r.gameObject); }