void SpawnNewPlayer(Team team, int inputID) { Player player = Instantiate(playerPrefab, GetRandomSpawnPosition(), Quaternion.identity); PlayerBody pb = player.GetComponentInChildren(typeof(PlayerBody)) as PlayerBody; player.InitiatePlayer(team, inputID); switch (team) { case Team.Sand: GameObject sm = Instantiate(sandman, pb.transform); pb.animator = sm.GetComponentInChildren(typeof(Animator)) as Animator; break; case Team.Fire: GameObject pm = Instantiate(pyromaniac, pb.transform); pb.animator = pm.GetComponentInChildren(typeof(Animator)) as Animator; break; case Team.LastIndex: break; default: break; } players.Add(player); }
private void OnTriggerEnter(Collider other) { // 得点球体に衝突 if (other.name == "Sphere" || other.name == "Sphere(Clone)") { Destroy(other.gameObject); //得点加算 StartCount.AddScore(); // 新しい得点球体を生成を予約 sphereCnt = 0; // 過去のプレイヤー情報の位置に胴体部分の作成 BodyInfo body = bodyInfo.Pop(); var bodyObj = Instantiate(prefabBody, body.pos, body.qua); var playerBody = bodyObj.GetComponent <PlayerBody>(); playerBody.forwardBody = bodyTarm; bodyTarm = playerBody; } else { Debug.Log(other.name); // 衝突したのでゲームオーバー処理 StartCount.GameEndCall(); anm.ChangeAnimation(QuerySDMecanimController.QueryChanSDAnimationType.NORMAL_LOSE); gameOverCnt = 0; } }
internal void UpdateBoxCollider() { Vector3 actualSize; actualSize = PlayerBody.GetComponent <SpriteRenderer>().bounds.size; PlayerBody.GetComponent <BoxCollider2D>().size = new Vector2(actualSize.x, actualSize.y); }
public void ApplyCommandOnPlayer(PlayerBody body, MovementCommand command, float deltaTime = -1) { if(deltaTime < 0) { deltaTime = Time.deltaTime; } Transform bodyTransform = body.gameObject.transform; Rigidbody bodyRigidbody = body.gameObject.rigidbody; if(command.LateralAxis != 0) { float torqueMagnitude = body.RotAcceleration * command.LateralAxis * deltaTime; bodyRigidbody.AddTorque(bodyTransform.up.normalized * torqueMagnitude); } if(command.FrontAxis != 0) { float forceMagnitude = body.LinearAcceleration * command.FrontAxis * deltaTime; /* Vector3 comOffset = (-bodyTransform.up + bodyTransform.forward * Mathf.Sign(command.FrontAxis)) / 2; bodyRigidbody.AddForceAtPosition(bodyTransform.forward * forceMagnitude, bodyRigidbody.centerOfMass + comOffset, ForceMode.Acceleration); */ bodyRigidbody.AddForce(bodyTransform.forward.normalized*forceMagnitude); } if(command.TestButton(MovementCommand.ActionFlags.Jump)) { body.Jump(); } }
public void DrawActorDebugGUI(VoosActor actor) { using (new Util.GUILayoutFrobArea(actor.transform.position, 100, 500)) { PhotonView photonView = PhotonView.Get(actor); if (photonView == null) { return; } PlayerBody playerBody = actor.GetPlayerBody(); //string pbodyInfo = playerBody == null ? "" : $"Claimed? {playerBody.IsClaimed()} ..play mode? {playerBody.GetIsClaimerPlaying()}"; string color = photonView.isMine ? "yellow" : "grey"; string hash = actor.GetName().Substring(0, 9); bool locked = actor.IsLockedByAnother() || actor.IsLockWantedLocally(); string lockingString = locked ? " LOCKED" : ""; string lastPos = actor.unrel == null ? "" : actor.unrel.lastPosition.x.ToFourDecimalPlaces(); GUILayout.Label($@"<color={color}>{actor.GetDisplayName()} rot: {actor.GetRotation().ToFourDecimalPlaces()} last unrel: {actor.lastUnreliableUpdateTime} lastPX: {lastPos}</color>".Trim()); GUILayout.Toggle(actor.GetReplicantCatchUpMode(), "Catchup?"); actor.debug = GUILayout.Toggle(actor.debug, "Debug"); // owner: {photonView.ownerId}{lockingString} // {hash} view {actor.reliablePhotonView.viewID} // X: {actor.transform.position.x.ToFourDecimalPlaces()} // lastRBMPX: {actor.lastRBMovedPos.x.ToFourDecimalPlaces()} } }
// Start is called before the first frame update void Start() { player = GameObject.FindGameObjectWithTag("PlayerHead").GetComponent <PlayerBody>(); animator = GetComponent <Animator>(); rb2d = GetComponent <Rigidbody2D>(); transform.localScale *= base.VirusScale; }
public void OnTriggerEnter2D(Collider2D col) { if (col.gameObject.name == "World Border") { Destroy(this.gameObject); } if (PhotonNetwork.IsMasterClient == false) { return; } PlayerBody hitBody = col.GetComponent <PlayerBody>(); Explosion hitBomb = col.GetComponent <Explosion>(); if (hitBody) { if (owner == hitBody.shoot) { return; } hitBody.movement.photonView.RPC("Hit", RpcTarget.All); Destroy(this.gameObject); } if (hitBomb) { hitBomb.Hit(); Destroy(this.gameObject); } }
void OnTriggerEnter(Collider col) { PickupBase Pickup = col.gameObject.GetComponent <PickupBase>(); if (Pickup) { Pickup.PickedUp(); } Projectile proj = col.gameObject.GetComponentInParent <Projectile>(); if (proj && SinceSpawn >= 3) { Health -= proj.Damage - (proj.WeaponKind == Weapon.Kind ? 1 : 0); if (Health <= 0) { Health += 100; Lives--; if (Lives == 0) { Instantiate(DeathEffect, transform.position, transform.rotation); PlayerBody.SetActive(false); Weapon.Firing = false; MapHandler.Instance.enabled = false; } SinceSpawn = 0; } Destroy(col.gameObject); } }
public void ShootInPlayer_InViewScope_Success() { //Arrange var player = new PlayerBody(new ShapeCircle(2, new Point(10, 10)), new Vector(0, 0), null, null, 0, 0, "Bob", 100, 1); var viewPort = Substitute.For <IActiveBodyEyesight>(); viewPort.GetFrame(Arg.Any <Guid>(), Arg.Any <IMapTile>()).Returns(v => new ViewFrame() { Bodies = new List <Body> { player } }); var mechanicEngine = Substitute.For <IMechanicEngine>(); mechanicEngine.ViewPort.Returns(v => viewPort); var weapon = Substitute.For <WeaponBase>(10, 100, mechanicEngine, "Gun"); var npc = new NPCAI(new ShapeCircle(2, new Point(20, 20)), mechanicEngine, 10, 10, 100, 1); npc.AddWeapon(weapon); //Act npc.UpdateState(); //Assert weapon.Received().Shoot(Arg.Any <Point>(), Arg.Any <Vector>(), npc.Id); }
// Use this for initialization void Start() { PlayerInput.inputPolled += MoveAndShoot; //make sure we're subscribed to the event out of Player Input body = GetComponentInChildren <PlayerBody>(); rb = GetComponent <Rigidbody>(); // Connect our rigidbody variable to our rigidbody component attackComponent = GetComponent <IPlayerAttack>(); //cache a reference to our attack script }
public Ability TurnBodyToAbility(PlayerBody body) { Ability newAbillity = new Ability(); newAbillity._name = body._name; return(newAbillity); }
public void OnMoveDistanceShouldBeCalculatedAccordingBodySpeed() { //Arrange var collisionManager = Substitute.For <IShapeCollisionManager>(); collisionManager.CheckCollision(Arg.Any <Shape>(), Arg.Any <Shape>()).Returns(false); IMapEngine me = Substitute.For <IMapEngine>(); me.GetBodiesForCollision(Arg.Any <ActiveBody>()).Returns(new List <Body>()); IPhysicsEngine pe = new PhysicsEngine(collisionManager, me); int playerSpeed = 10; Point playerStartPosition = new Point(0, 0); PlayerBody player = new PlayerBody(new ShapeCircle(10, playerStartPosition), new Vector(1, 1), null, null, 100, 100, "Bob", 10, playerSpeed); TimeSpan moveDuration = new TimeSpan(0, 0, 1); GameCommandMove moveCommand = new GameCommandMove(0, new Vector(0, 1), null, player, moveDuration); //Act pe.ProcessBodyAction(moveCommand); //Assert double moveSize = playerSpeed * moveDuration.TotalMilliseconds / 1000.0; Assert.IsTrue(player.Shape.Position == new Point(playerStartPosition.X, playerStartPosition.Y + moveSize)); }
// Tries to migrate the user to the target actor. // If targetActor == null, the user will be actorless. public void MigrateUserTo(VoosActor targetActor) { PlayMain pm = playMain.GetComponent <PlayMain>(); PlayerBody targetPlayerBody = targetActor?.GetPlayerBody(); if (targetActor != null && (!targetActor.GetIsPlayerControllable() || null == targetPlayerBody)) { targetActor.SetIsPlayerControllable(true); targetPlayerBody = targetActor.GetPlayerBody(); Debug.Assert(targetPlayerBody != null, "MigrateUserTo could not add a PlayerBody to target actor."); } pm.SetPlayerBody(targetPlayerBody); // If we are in play mode, we need to reparent the user body. // Otherwise this will be done later, when we enter play mode. if (!InEditMode()) { userBody.transform.SetParent(playMain.bodyParent); userBody.transform.localPosition = Vector3.zero; userBody.transform.localRotation = Quaternion.identity; } if (targetActor != null) { targetActor.RequestOwnership(); } VoosActor playMainActor = pm.GetPlayerActor(); Debug.Assert(targetActor == playMainActor, "MigrateUserTo didn't succeed, we wanted targetActor to be " + targetActor + " but PlayMain still has " + playMain); }
public void SameClassActiveBodiesCouldNotMakeDamageToEachOther() { //Arrange Guid ownerId = Guid.NewGuid(); var handlers = new MechanicEngineHandlersBuilder(); var mechanicEngine = Substitute.For <IMechanicEngine>(); var player1 = new PlayerBody(null, new Vector(1, 1), mechanicEngine, null, 100, 100, "Bob", 100, 1); var player2 = new PlayerBody(null, new Vector(1, 1), mechanicEngine, null, 100, 100, "Bob", 100, 1); player1.SocialGroups.Add("1"); player2.SocialGroups.Add("1"); mechanicEngine.FindBody(ownerId).Returns(player1); var bulletCollisionHandler = handlers.BuildBulletCollisionHandler(mechanicEngine); var bullet = new Bullet(10, 10, 10, new ShapeCircle(10, new Point(0, 0)), new Vector(1, 1), ownerId, mechanicEngine, 0, string.Empty); var gameCommand = new GameCommandMove(0, new Vector(1, 1), mechanicEngine, bullet, new TimeSpan()); var npc = Substitute.For <NPCAI>(null, mechanicEngine, 0, 100, 100, 1); var physicsResult = new PhysicsProcessingResultCollision(new List <Body>() { player2 }); //Act & Assert Assert.IsTrue(bulletCollisionHandler.Item1(gameCommand, physicsResult)); bulletCollisionHandler.Item2(gameCommand, physicsResult); Assert.IsTrue(player1.Life == 100 && player2.Life == 100); }
private void OnTriggerStay2D(Collider2D collision) { PlayerBody pb = collision.gameObject.GetComponent <PlayerBody>(); if (collision.CompareTag("Player") && pb.Lying && pb.WhichPlayer != playerBody.WhichPlayer) { if (playerBody.do_time > 1) { if (pb.Trash > 0) { int temp = Mathf.CeilToInt(pb.Trash * (float)playerBody.Do_num / 100); pb.Loss_Garbage(temp); playerBody.Pick_Garbage(temp); playerBody.do_time = 0; pb.ShowEmoji(PlayerBody.Emojis.Bedo, 3f); playerBody.ShowEmoji(PlayerBody.Emojis.Do, 3f); AudioManager.Instance.SoundPlay("sfx/Do"); AudioManager.Instance.SoundPlay("sfx/BeDo"); } } else { playerBody.do_time += Time.deltaTime; } } }
public void Update(PlayerBody me) { if (me.pauseMenu.menuParent && me.pauseMenu.menuParent.gameObject.activeInHierarchy && me.pauseMenu.hologramMenuController.currentMenu == HologramButtonScript.Menu.MainMenu && !isButtonHidden) { buttonObj.SetActive(true); buttonObj.transform.SetParent(me.pauseMenu.menuParent); if (!debugButton) { buttonObj.transform.localPosition = _position; } Transform leftFinger = me.hands.leftPointerFingerTip; Transform rightFinger = me.hands.rightPointerFingerTip; buttonTimer += Time.deltaTime; if (buttonPrimitiveRenderer.bounds.Contains(leftFinger.transform.position) || buttonPrimitiveRenderer.bounds.Contains(rightFinger.transform.position)) { if (debugButton) { if (me.input.rightTriggerPulled) { buttonObj.transform.position = rightFinger.transform.position; Console.WriteLine("POS: " + buttonObj.transform.localPosition.ToString("G4")); Console.WriteLine("SCL: " + buttonPrimitive.transform.localScale.ToString("G4")); } } if (!buttonPressed && buttonTimer > 0.6f) { AudioSource.PlayClipAtPoint(me.pauseMenu.hologramMenuController.MenuSettings.pressSound, me.pauseMenu.menuParent.transform.position); buttonPressed = true; buttonTimer = 0f; if (_isToggleButton) { isButtonOn = !isButtonOn; } if (isButtonOn) { buttonPrimitiveRenderer.material.color = Color.magenta; } else { buttonPrimitiveRenderer.material.color = Color.blue; } } else { buttonPressed = false; } } else { buttonPressed = false; } } else { buttonObj.SetActive(false); } }
// ---------------------------------------------------------------- // Doers // ---------------------------------------------------------------- private void SetCharTypeInMe(PlayerTypes _type) { CharTypeInMe = _type; // Color my body! Color playerColor = PlayerBody.GetBodyColorNeutral(CharTypeInMe); sr_body.color = Color.Lerp(playerColor, Color.black, 0.2f); // darken it slightly. }
void Awake() { //根据屏幕大小获取边界的宽度和高度 areaWidth = Screen.width - player.drawingDimensions.z; areaHeight = Screen.height - player.drawingDimensions.w; body = GetComponentInChildren <PlayerBody>(); staticPlayer = this; }
void AbandonPlayerBody() { if (playerBody != null) { playerBody.StopControlling(this); playerBody = null; } }
internal void AddPlayerModel() { m_PlayerBody = ObjectUtils.Instantiate(evr.m_PlayerModelPrefab, CameraUtils.GetMainCamera().transform, false).GetComponent <PlayerBody>(); var renderer = m_PlayerBody.GetComponent <Renderer>(); evr.GetModule <SpatialHashModule>().spatialHash.AddObject(renderer, renderer.bounds); evr.GetModule <SnappingModule>().ignoreList = renderer.GetComponentsInChildren <Renderer>(true); }
public void startGame(List <ConnectedPlayer> players) { protocol = gameMaster.protocol; this.players = players; bodies [0] = new PlayerBody(); bodies [1] = new PlayerBody(); gameLogic.startGame(gameMaster); }
// Use this for initialization public override void Start() { // FrameRate固定 Application.targetFrameRate = 60; // 最初は自身が最後尾 bodyTarm = this; }
private void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.tag == "Player") { playerBody = collision.GetComponentInParent <PlayerBody>(); StartAction(); playerBody.AddPowerUpTimer(duration); } }
public void AddWeapon_Successful() { var player = new PlayerBody(null, new Vector(0, 0), null, null, 0, 0, "Bob", 100, 1); int weaponsCount = player.WeaponsCount; player.AddWeapon(new WeaponSimpleBullet(0, 0, 0, 0, new TimeSpan(), null, "Weapon", new ShapeRectangle(3, 7, new Point(0, 0)))); Assert.AreEqual(weaponsCount, player.WeaponsCount - 1); }
private void Start() { InitializeController(); characterState = GetComponent <PlayerState>(); playerMovement = GetComponent <PlayerMovement>(); characterInventory = GetComponent <PlayerInventory>(); playerBody = GetComponent <PlayerBody>(); }
public void OnTriggerEnter2D(Collider2D col) { PlayerBody hitBody = col.GetComponent <PlayerBody>(); if (hitBody) { hitBody.movement.Hit(); } }
/* * This enemy only attacks if it's behind the player * Dot product will give us orientation : 0 is 90 degree, 1 is in front, -1 is behind */ private float DotToPlayer() { Vector3 playerToMe = gameObject.transform.position - player.transform.position; //get direction from player to me PlayerBody pb = player.GetComponentInChildren <PlayerBody>(); //Get the player body, so I can see what direction the body is looking Debug.DrawRay(player.transform.position, pb.GetForward(), Color.green); float dotProduct = Vector3.Dot(playerToMe.normalized, pb.GetForward().normalized); return(dotProduct); }
private void OnTriggerEnter2D(Collider2D collision) { PlayerBody pb = collision.gameObject.GetComponent <PlayerBody>(); if (collision.transform.CompareTag("Player") && player != (int)pb.WhichPlayer && !pb.Lying) { pb.Hitted(damage); pb.ShowEmoji(PlayerBody.Emojis.Hitted, 0.3f); /*int temp = (int)Random.Range(6, 9); * collision.gameObject.GetComponent<PlayerBody>().Loss_Garbage(temp); */ Vector2 vector2 = new Vector2(-transform.up.x, -transform.up.y); for (int i = 0; i < damage; i++) { Drop(vector2); } SoundPlay("sfx/ShootHit"); Rigidbody2D.velocity = Vector3.zero; PoolRecycle(); } if (collision.transform.CompareTag("Wall")) { Vector2 vector2 = Vector2.zero; switch (collision.name) { case "Wall_left": vector2.x = 1; break; case "Wall_right": vector2.x = -1; break; case "Wall_up": vector2.y = -1; break; case "Wall_down": vector2.y = 1; break; default: break; } for (int i = 0; i < damage; i++) { Drop(vector2); } Rigidbody2D.velocity = Vector3.zero; PoolRecycle(); } }
public void ApplyCommandOnPlayer(PlayerBody body, MovementCommand command, float deltaTime = -1) { if(deltaTime < 0) { deltaTime = Time.deltaTime; } if(command.HasMovement) { Debug.Log("Command have ("+command.FrontAxis+","+command.LateralAxis+")"); Transform cameraReference = body.ActiveCamera.transform; Rigidbody rigidbody = body.gameObject.rigidbody; Transform playerTransform = body.gameObject.transform; //calculate target movement Vector3 targetMovement = (command.FrontAxis * cameraReference.forward) + (command.LateralAxis * cameraReference.right); targetMovement.y = 0; //purge vertical component targetMovement.Normalize(); //normalize Vector2 commandVector = new Vector2(command.FrontAxis, command.LateralAxis); //accelerate toward target movement rigidbody.AddForce(targetMovement * commandVector.magnitude * body.LinearAcceleration * deltaTime); //gradually rotate front toward target Vector3 currentFront = playerTransform.forward; currentFront.y = 0; currentFront.Normalize(); //prevent float angle = Vector3.Angle(currentFront, targetMovement); if(angle != 0) { //check if remaining delta is smaller than what's percorrble with current angular velocity playerTransform.rotation = Quaternion.LookRotation(Vector3.RotateTowards(playerTransform.forward, targetMovement, body.RotAcceleration * deltaTime, body.LinearAcceleration * deltaTime)); /* float potential = body.RotAcceleration * deltaTime; if(angle < potential) { playerTransform.rotation = Quaternion.LookRotation(Vector3.RotateTowards(playerTransform.forward, targetMovement, 0, 0)); } else { rigidbody.AddTorque(body.transform.up * potential); } */ } } if(command.TestButton(MovementCommand.ActionFlags.Jump)) { body.Jump(); } }
private void OnTriggerStay2D(Collider2D collision) { if (((int)collision.GetComponent <PlayerBody>().WhichPlayer + 1) == whichPlayer) { Charging = true; if (p == null) { p = collision.gameObject.GetComponent <PlayerBody>(); } } }
public void Shoot_Successful() { var player = new PlayerBody(new ShapeCircle(0, new Point(0, 0)), new Vector(0, 0), null, null, 0, 0, "Bob", 100, 1); var weapon = Substitute.For <WeaponBase>(0, 0, null, "Gun"); player.AddWeapon(weapon); player.Shoot(); weapon.Received().Shoot(Arg.Any <Point>(), Arg.Any <Vector>(), player.Id); }
void OnTriggerStay(Collider other) { gravityCollider.enabled = true; PlayerBody playerBody = other.GetComponent <PlayerBody> (); RaycastHit surfaceDown; if (playerBody && Physics.Linecast(playerBody.transform.position, gravityCollider.transform.position, out surfaceDown)) { Debug.DrawLine(playerBody.transform.position, gravityCollider.transform.position); playerBody.playerNormal = surfaceDown.normal; } }
public void OnEnable() { m_body = (PlayerBody)target; }