/*--------------------------------------------------------------------------------------------*/ private void UpdateDataWithLocalOffsets(ICursorDataForInput pData, HoverInputOculusTouch.ControlState pState) { pData.SetWorldPosition( OriginTransform.TransformPoint(pState.LocalPos) + pState.LocalRot * LocalPosition); pData.SetWorldRotation( OriginTransform.rotation * pState.LocalRot * Quaternion.Euler(LocalRotation)); }
void Use() { Debug.Log("Item used: " + OriginTransform.ToString()); Vector3 newPos = new Vector3(OriginTransform.position.x, 1.0f, OriginTransform.position.z); m_body.position = newPos + OriginTransform.forward * 5; m_body.rotation = OriginTransform.rotation; // Quaternion.Euler(0, OriginTransform.rotation.y, 0); m_body.velocity = 100f * OriginTransform.forward; }
private void Awake() { spawnObj = new GameObject[transform.childCount]; originTransforms = new OriginTransform[transform.childCount]; for (int i = 0; i < transform.childCount; i++) { spawnObj[i] = transform.GetChild(i).gameObject; OriginTransform origin = new OriginTransform(spawnObj[i].transform); originTransforms[i] = origin; spawnObj[i].SetActive(false); } nextObjIndex = 0; }
private IEnumerator LaunchProjectile() { if (!isCooldown && (Enemy.transform.childCount != 0 && transform.childCount != 0)) { isCooldown = true; int RandomOrigin; int RandomTarget; Vector2 OriginPosition; Vector2 TargetPosition; Transform OriginTransform; float RotationAlly; RandomOrigin = Random.Range(0, transform.childCount); RandomTarget = Random.Range(0, Enemy.transform.childCount); OriginTransform = transform.GetChild(RandomOrigin); OriginPosition = OriginTransform.position; TargetPosition = Enemy.transform.GetChild(RandomTarget).position; RotationAlly = Mathf.Atan2(TargetPosition.y - OriginPosition.y, TargetPosition.x - OriginPosition.x); OriginTransform.rotation = Quaternion.Euler(0, 0, RotationAlly * Mathf.Rad2Deg); Vector2 OriginFirepoint = OriginTransform.GetChild(0).GetChild(Random.Range(0, OriginTransform.GetChild(0).childCount)).position; GameObject launchedProjectile = Instantiate(damageProjectile, OriginFirepoint, Quaternion.Euler(0, 0, RotationAlly * Mathf.Rad2Deg)); BeamProjectile beam = launchedProjectile.GetComponent <BeamProjectile>(); if (beam) { shotAudio.Play(); beam.team = tag; beam.damage = damage; beam.thirstPower = thirstPower; beam.lifetime = lifetimeProjectile; } launchedProjectile.GetComponent <Rigidbody2D>().velocity = new Vector2(Mathf.Cos(RotationAlly), Mathf.Sin(RotationAlly)) * launchForce; yield return(new WaitForSecondsRealtime(attackCooldown)); isCooldown = false; } }
// TODO - Include scale in the calculation private void UpdateOrigin() { int originX = 0; int originY = 0; // Set the width and height equal to the texture's width and height Width = Texture.Width; Height = Texture.Height; // Calculate the offset wrt. the origin // TODO - Re-evaluate this code once nested containers are in use (global transform maybe should be used instead) switch (Origin) { case EOrigin.BOTTOM_CENTER: originX = (int)parent.Transform.Position.X + (parent.Width / 2) - (Width / 2); originY = (int)parent.Transform.Position.Y; break; case EOrigin.BOTTOM_LEFT: originX = (int)parent.Transform.Position.X; originY = (int)parent.Transform.Position.Y; break; case EOrigin.BOTTOM_RIGHT: originX = (int)parent.Transform.Position.X + parent.Width - Width; originY = (int)parent.Transform.Position.Y; break; case EOrigin.CENTER: originX = (int)parent.Transform.Position.X + (parent.Width / 2) - (Width / 2); originY = (int)parent.Transform.Position.Y + (parent.Height / 2) - (Height / 2); break; case EOrigin.CENTER_LEFT: originX = (int)parent.Transform.Position.X; originY = (int)parent.Transform.Position.Y + (parent.Height / 2) - (Height / 2); break; case EOrigin.CENTER_RIGHT: originX = (int)parent.Transform.Position.X + parent.Width - Width; originY = (int)parent.Transform.Position.Y + (parent.Height / 2) - (Height / 2); break; case EOrigin.TOP_CENTER: originX = (int)parent.Transform.Position.X + (parent.Width / 2) - (Width / 2); originY = (int)parent.Transform.Position.Y + parent.Height - Height; break; case EOrigin.TOP_LEFT: originX = (int)parent.Transform.Position.X; originY = (int)parent.Transform.Position.Y + parent.Height - Height; break; case EOrigin.TOP_RIGHT: originX = (int)parent.Transform.Position.X + parent.Width - Width; originY = (int)parent.Transform.Position.Y + parent.Height - Height; break; } // Update the origin point OriginTransform.SetTranslation(originX, originY); }
void Use() { m_ItemUseTime = Time.time; Debug.Log("Item used: " + OriginTransform.ToString()); }