public void SetVelocity(Orbision dir, float speed) { this.dir = dir; this.speed = speed; //bulletMesh.eulerAngles = dir.localForward * Mathf.Rad2Deg; }
private void Start() { rb = GetComponent <Rigidbody>(); gb = new GravityBody(rb, SpinType.axis, mass); StartCoroutine(BulletDecay()); dir = new Orbision(); }
private void Awake() { if (instance != null) { Debug.LogWarning("Multiple instances of " + this + " found"); } instance = this; gravityBodies = new List <GravityBody>(); Orbision.AddOrigin(transform.position); }
public void FireGun(Vector3 direction) { if (fireTime < 0) { Orbision oDirection = new Orbision { i = direction.x, j = direction.y, k = direction.z, h = Orbision.CalculateDeltaH(transform.forward, direction) }; Shoot(oDirection); fireTime = fireRate; } }
public GravityBody(Rigidbody rb, SpinType spinType = SpinType.axis) { gravitySource = GravitySource.instance; transform = rb.transform; this.rb = rb; rb.useGravity = false; rb.freezeRotation = true; this.spinType = spinType; mass = 1; isWeightless = true; groundHitBuffer = gravitySource.groundHitBuffer; attractingPoint = gravitySource.transform; gravitySource.AddGravityObject(this); orbision = Orbision.Vector3ToOrbision(rb.position); }
protected virtual void Shoot(Orbision direction) { }
protected override void Shoot(Orbision direction) { Bullet bullet = Instantiate(bulletPrefab, bulletSpawnPoint.position, transform.rotation).GetComponent <Bullet>(); bullet.SetVelocity(direction, bulletSpeed); }