public void ReturnKnife() { Destroy(knife); knife = null; knifeController = null; HideKnife(false); }
void Start() { knifeController = transform.parent.GetComponent <KnifeController>(); collider = GetComponent <Collider>(); safeToWarp = true; lastKnifePosition = knifeController.GetPosition(); }
void SpwanKnifes() { GameObject Knifes = Instantiate(KnifesGO, KnifesSpwanPoint.position, Quaternion.identity); CurrKnife = Knifes.GetComponent <KnifeController>(); CurrKnife.ShowAnimation(); }
public void GenereteLevel() { KnifesCount = Random.Range(1, 8); for (int i = 0; i < knifeicon.Count; i++) { if (i >= KnifesCount) { knifeicon[i].color = new Color(knifeicon[i].color.r, knifeicon[i].color.g, knifeicon[i].color.b, 0); } } int stickingKnife = Random.Range(1, 5); float MaxAngle = 360 / (float)stickingKnife; float LastAngle = 0; for (int i = 0; i < stickingKnife; i++) { float angle = LastAngle + Random.Range(20, MaxAngle) * Mathf.Deg2Rad; LastAngle = angle; Vector3 pos = Target.transform.position + new Vector3(Mathf.Sin(angle), Mathf.Cos(angle), 0) * 1.25f; GameObject knife = Instantiate(KnifesGO, pos, Quaternion.identity); knife.transform.up = Target.transform.position - knife.transform.position; knife.transform.parent = Target.transform; KnifeController knifeBehaviour = knife.GetComponent <KnifeController>(); knifeBehaviour.myCollider.enabled = true; CurrHitKnifes.Add(knifeBehaviour.myRigidbody); } CurrKnifesCount = KnifesCount; SpwanKnifes(); }
void Start() { _finishScreen = false; _loseScreen = false; _canvas = GameObject.Find("Canvas").GetComponent <Canvas>(); _rtCanvas = _canvas.GetComponent(typeof(RectTransform)) as RectTransform; _nextButtonObj = GameObject.Find("NextButton"); _startButtonObj = GameObject.Find("StartButton"); _retryButtonObj = GameObject.Find("RetryButton"); _lifesObj = GameObject.Find("Lifes"); _loadingBar = GameObject.Find("LoadingBar").GetComponent <Image>(); _staticBar = GameObject.Find("StaticBar").GetComponent <Image>(); _currentLevelImage = GameObject.Find("CurrentLevelImage").GetComponent <Image>(); _finishImage = GameObject.Find("FinishImage").GetComponent <Image>(); _crystalImage = GameObject.Find("CrystalsImage").GetComponent <Image>(); _nextButton = _nextButtonObj.GetComponent <Button>(); _startButton = _startButtonObj.GetComponent <Button>(); _retryButton = _retryButtonObj.GetComponent <Button>(); _currentLevel = GameObject.Find("CurrentLevel").GetComponent <Text>(); _crystalsCount = GameObject.Find("CrystalsCount").GetComponent <Text>(); _chunkPlacer = GameObject.Find("ChunkPlacer").GetComponent <ChunkPlacer>(); _knifeController = GameObject.Find("Knife").GetComponent <KnifeController>(); _levelManager = GameObject.Find("LevelManager").GetComponent <LevelManager>(); }
// detach knife on warp end void OnWarpEnd(object sender, object args) { if (attachedKnife) { attachedKnife = null; } }
/* * Called by PlayerKnifeController prior to beginning the warp to set up variables */ public void Setup(float _fov, Vector3 _startPos, KnifeController _knifeController, Vector3 _camRelativePos, Quaternion _startRot, Quaternion _endRot, bool _gravityShift, FibreOpticController _fibreController) { startPos = _startPos; startRot = _startRot; transform.position = startPos; transform.rotation = startRot; knifeController = _knifeController; endRot = _endRot; camRelativePos = endRot * _camRelativePos; gravityShift = _gravityShift; cam.fieldOfView = _fov; rb.detectCollisions = true; Blackout(false); if (_fibreController) { fibreOpticController = _fibreController; fibreOpticWarp = true; fibreOpticController.WarpKnife(knifeController); } CalculateDuration(); }
/* * Retarget active missiles to the knife */ void RedirectMissiles() { KnifeController knife = playerKnifeController.GetActiveKnifeController(); if (knife == null) { return; } // Get all currently active missiles List <MissileController> missiles = new List <MissileController>(); foreach (GameObject obj in GameObject.FindGameObjectsWithTag("Missile")) { MissileController controller = obj.GetComponent <MissileController>(); if (controller != null) { missiles.Add(controller); } } if (missiles.Count <= 0) { return; } // apply new target foreach (MissileController missile in missiles) { // set target here! missile.SetTarget(knife.transform); } }
public void OnStart() { GlobalHelper.SetBackImg("background"); //加载垃圾回收站 GlobalHelper.LoadGarbageCollection(); //摆放launcher的位置 float y = GlobalHelper.GetVisibleYPos(transform.position.z, MaxSize); Vector3 v = transform.position; transform.position = new Vector3(v.x, y, v.z); //生成水果 InvokeRepeating("InstantiateFruites", 0.8f, 0.7f); //加载刀片 m_kc = KnifeController.InstantiateMyKnife(v.z); //加载uiscene_game Transform ui = GlobalHelper.OpenUISceneByName("UIScene_Game"); m_uigame = ui.GetComponent <UIScene_Game>(); m_uigame.RegisterSliceMissle(this); }
void PressLogin(GameObject _obj) { //销毁UI Destroy(gameObject); //加载Game UI UIScene_Game ui_game = BasePlayer.UIMgr.UI <UIScene_Game>(); #region 做了三个发射器 float height = Camera.main.orthographicSize / 2f; //启动发射器 for (int i = 0; i < 3; i++) { Vector3 pos = new Vector3( Camera.main.transform.position.x, (Camera.main.transform.position.y + Camera.main.orthographicSize - (i + 1) * (height)), 0f ); GameObject obj = Instantiate(Resources.Load("Controller/MonsterLauncher")) as GameObject; obj.transform.position = pos; MonsterLauncher ml = obj.GetComponent <MonsterLauncher>(); ml.OnStart(ui_game); } #endregion //播放声音 AudioManager.PlayAudio(null, eAudioType.Audio_BackGround, "BackGround", 1, true); //加载刀片 KnifeController.CreateKnife(); }
/* * Throw knife at given strength */ void ThrowKnife(float _strength, bool _secondary = false) { if (currentWarps < 1) { return; } // TODO: replace with consistent knife instances. one for each type // instantiate knife prefab knife = Instantiate((_secondary) ? secondaryKnifePrefab : primaryKnifePrefab, transform.position, GlobalGravityControl.GetGravityRotation()); knifeController = knife.GetComponent <KnifeController>(); // check that we have actually got a knife if (knifeController == null) { Debug.LogError("No KnifeController found on knife prefab"); return; } // set up and throw knife object knifeController.Setup(knifeInHand.transform, warpLookAheadCollider); knifeController.Throw(transform.forward * _strength); // hide knife view object HideKnife(true); }
public ProjectInfrastructure(MonoBehaviourContainer monoBehaviourContainer) { _monoBehaviourContainer = monoBehaviourContainer; _UIController = new UIController(monoBehaviourContainer.UIView); _targetCicleController = new TargetCicleController(monoBehaviourContainer.TargetCicleFactory); _knifeController = new KnifeController(monoBehaviourContainer.KnifeFactory); _coinBonusController = new CoinBonusController(monoBehaviourContainer.CoinBonusFactory); _gameplayController = new GameplayController(_UIController, _targetCicleController); }
// attaches knife to other end of fibreoptic public void WarpKnife(KnifeController _knifeController) { if (!IsConnected()) { Debug.LogError("Not connected to other FibreOpticController"); return; } otherEndFibreOpticController.AttachKnife(_knifeController); }
// Создает новый нож, если нож уже есть на сцене , выходим из метода private void CreateNewKnife() { if (knife != null) { return; } else { knife = Instantiate(knifePrefab, knifeSpawn, Quaternion.identity).GetComponent <KnifeController>(); } }
void OnAttachKnife(object sender, object args) { knifeController = (KnifeController)args; knifeObject = knifeController.gameObject; safeWarpCollider = knifeObject.GetComponentInChildren <SafeWarpCollider>(); colliding = false; transform.position = knifeObject.transform.position; transform.rotation = GlobalGravityControl.GetGravityRotation(); lastUsablePos = knifeObject.transform.position; Enabled(true); }
//bool isDoorExist = false; // Use this for initialization void Start() { m_rigidbody2D = transform.GetComponent <Rigidbody2D> (); m_boxCollider2D = transform.GetComponent <BoxCollider2D> (); m_rayDistance = m_boxCollider2D.bounds.extents.y + 0.1f; m_state = WeaponState.None; knifeController = GameObject.Find("Knife").GetComponent <KnifeController> (); }
/* * Sticks knife to this fibreoptic end. * Positions to allow easy warp transition */ public void AttachKnife(KnifeController _knifeController) { attachedKnife = _knifeController; // stick knife into this end. Should allow lookahead colliders to do their thing // places knife out from surface to give lookahead more room Vector3 normalVector = GetDirection(); Vector3 knifePosition = transform.position + normalVector; // gravity offset to align camera _knifeController.StickToSurface(knifePosition, normalVector, gameObject, true); }
public void Throwing() { if (_isCreating) { if (Time.time > _currentCoolDownThrow && _tempView != null) { _currentCoolDownThrow = Time.time + _coolDownThrow; _tempController = new KnifeController(_tempView, _knifeData.Knife); _tempController.Throw(); _isCreating = false; _tempController.GameOver += EndGame; } } }
void ShootKnife() { CurrKnife.Shoot(); CurrKnifesCount--; knifeicon[CurrKnifesCount].color = new Color(0, 0, 0, 0.5f); if (CurrKnifesCount > 0) { SpwanKnifes(); } else { CurrKnife = null; } }
private void Awake() { //加载登录水果 FruitController fc = FruitController.InstantiateMyFruit( Vector3.zero, //位置 Vector3.zero, //旋转值 eFruitState.FruitState_Login, eFruitType.Fruit_Melon, SliceEvent); //加载刀片 KnifeController.InstantiateMyKnife(fc.transform.position.z); //设置背景图片 GlobalHelper.SetBackImg("LoginBackImg2"); }
private void Throw() { if (m_PlayerManager.m_AvailableKnives <= 0) { return; } m_Animator.SetTrigger("throw"); GameObject knifeObject = Instantiate(m_KnivePrefab, KnifeNoise(), Quaternion.identity); KnifeController knifeController = knifeObject.GetComponent <KnifeController>(); knifeController.SetDirection(m_PlayerController.m_LookingDirection); knifeController.m_PlayerManager = m_PlayerManager; m_PlayerManager.m_AvailableKnives--; knifeController.DisableCrabboCollison(m_PlayerManager.m_CapsuleCollider2D); }
public static KnifeController CreateKnife() { UnityEngine.Object obj = Resources.Load("Prefabs/KnifeController"); GameObject _obj = Instantiate(obj) as GameObject; _obj.transform.position = new Vector3(0, 0, 0); _obj.transform.rotation = Quaternion.identity; _obj.transform.localScale = Vector3.one; KnifeController kc = _obj.GetComponent <KnifeController>(); if (null == kc) { kc = _obj.AddComponent <KnifeController>(); } return(kc); }
// Обращается к ножу , который готов к выстрелу, // придает ему силу броска private void KnifeShot() { knife.Shot(); knife = null; StartCoroutine(Reloader()); }
private void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.name == "Barrier") { m_isStay = true; Disappear(); } if (collision.gameObject.name == "Wall") { isFlying = false; List <int> touched = new List <int> (); for (int i = 0; i < m_detectCount; i++) { Vector3 rotateQuaternion = Quaternion.AngleAxis(interval * i, Vector3.forward) * Vector3.up; RaycastHit2D raycastHit2D = Physics2D.Raycast(transform.position, rotateQuaternion, m_radius, m_layerMask); if (raycastHit2D.collider != null) { Debug.DrawLine(transform.position, raycastHit2D.point, Color.green, 20f); touched.Add(i); //Debug.Log ("Angle:" + i); } } if (touched.Count == 0) { m_isStay = true; Disappear(); return; } float rotate = FindLeftestLine(touched) * interval - (touched.Count - 1) * interval / 2; if (rotate > 360) { rotate -= 360; } rotate -= 90; transform.localRotation = Quaternion.Euler(0, 0, rotate); //Debug.Log ("Rotate:" + rotate); Debug.DrawRay(transform.position, transform.TransformDirection(Vector2.right), Color.red, 20f); m_isStay = true; //StartCoroutine (Disappear (5)); } if (m_isStay) { if (collision.gameObject.name == "Hero") { Transform hero = collision.gameObject.transform; //Debug.Log (hero.GetComponent<Rigidbody2D> ().velocity.sqrMagnitude); Vector2 heroVelocity = hero.GetComponent <Rigidbody2D> ().velocity; if (heroVelocity.sqrMagnitude > 1f) { //Vector3 heroVec = hero.TransformDirection (Vector3.up); Vector2 doorNormal = transform.TransformDirection(Vector2.right); float dotResult = Vector2.Dot(heroVelocity, doorNormal) / heroVelocity.magnitude * doorNormal.magnitude; if (dotResult <= -0.3f) { Vector3 siblingNormal = m_sibline.transform.TransformDirection(Vector3.right); bool isSiblingStay = m_sibline.GetComponent <DoorController> ().GetIsDoorStay(); if (isSiblingStay) { float angle; float normalDotCos = Vector2.Dot(new Vector2(doorNormal.x, doorNormal.y), new Vector2(siblingNormal.x, siblingNormal.y)) / doorNormal.magnitude * siblingNormal.magnitude; if (normalDotCos <= -0.9f) { angle = 180; } else if (normalDotCos >= 0.9) { angle = 0; } else { angle = Mathf.Acos(normalDotCos) * Mathf.Rad2Deg; } Debug.Log("angle : " + angle); Vector3 axis; if (normalDotCos <= -0.9f) { axis = Vector3.forward; } else if (normalDotCos >= 0.9) { axis = Vector3.back; } else { axis = Vector3.Cross(doorNormal, siblingNormal); } Debug.Log("Axis : " + axis); Rigidbody2D heroRigid = hero.GetComponent <Rigidbody2D> (); //get negative Vector3 velocity = heroRigid.velocity; velocity.x = -velocity.x; velocity.y = -velocity.y; velocity.z = -velocity.z; Debug.DrawRay(transform.position, velocity.normalized, Color.yellow, 20f); Debug.Log("Before rotation : " + velocity); //TODO Adding a drag coefficient make player slow down heroRigid.velocity = Quaternion.AngleAxis(angle, axis) * velocity; Debug.Log("After rotation : " + heroRigid.velocity); Debug.DrawRay(m_sibline.position, heroRigid.velocity.normalized, Color.yellow, 20f); Vector2 padding = heroRigid.velocity.normalized * m_radius; hero.position = m_sibline.position + new Vector3(padding.x, padding.y, 0); } } } } if (collision.gameObject.name == "Knife") { Transform knife = collision.gameObject.transform; KnifeController knifeController = knife.GetComponent <KnifeController> (); if (knifeController.GetIsFlying()) { //Vector2 dir = knifeController.GetDir (); bool isSiblingStay = m_sibline.GetComponent <DoorController> ().GetIsDoorStay(); if (isSiblingStay) { //Start calculate Vector2 doorNormal = transform.TransformDirection(Vector2.right); Vector3 siblingNormal = m_sibline.transform.TransformDirection(Vector3.right); Vector3 dir = knifeController.GetDir(); knife.position = m_sibline.position + dir * m_radius; } //Vector2 heroVelocity = hero.GetComponent<Rigidbody2D> ().velocity; //if (heroVelocity.sqrMagnitude > 1f) { // //Vector3 heroVec = hero.TransformDirection (Vector3.up); // Vector2 doorNormal = transform.TransformDirection (Vector2.right); // float dotResult = Vector2.Dot (heroVelocity, doorNormal) / heroVelocity.magnitude * doorNormal.magnitude; // if (dotResult <= -0.3f) { // Vector3 siblingNormal = m_sibline.transform.TransformDirection (Vector3.right); // bool isSiblingStay = m_sibline.GetComponent<DoorController> ().GetIsDoorStay (); // if (isSiblingStay) { // float angle; // float normalDotCos = Vector2.Dot (new Vector2 (doorNormal.x, doorNormal.y), new Vector2 (siblingNormal.x, siblingNormal.y)) / doorNormal.magnitude * siblingNormal.magnitude; // if (normalDotCos <= -0.9f) { // angle = 180; // } else if (normalDotCos >= 0.9) { // angle = 0; // } else { // angle = Mathf.Acos (normalDotCos) * Mathf.Rad2Deg; // } // Debug.Log ("angle : " + angle); // Vector3 axis; // if (normalDotCos <= -0.9f) { // axis = Vector3.forward; // } else if (normalDotCos >= 0.9) { // axis = Vector3.back; // } else { // axis = Vector3.Cross (doorNormal, siblingNormal); // } // Debug.Log ("Axis : " + axis); // Rigidbody2D heroRigid = hero.GetComponent<Rigidbody2D> (); // //get negative // Vector3 velocity = heroRigid.velocity; // velocity.x = -velocity.x; // velocity.y = -velocity.y; // velocity.z = -velocity.z; // Debug.DrawRay (transform.position, velocity.normalized, Color.yellow, 20f); // Debug.Log ("Before rotation : " + velocity); // heroRigid.velocity = Quaternion.AngleAxis (angle, axis) * velocity; // Debug.Log ("After rotation : " + heroRigid.velocity); // Debug.DrawRay (m_sibline.position, heroRigid.velocity.normalized, Color.yellow, 20f); // Vector2 padding = heroRigid.velocity.normalized * m_radius; // hero.position = m_sibline.position + new Vector3 (padding.x, padding.y, 0); // } // } //} } } } }
/* * Warps the player to the current knife position, inheriting velocity and moving gravity vectors if required */ public void WarpToKnife(bool _shiftGravity, KnifeController _knifeController, FibreOpticController _fibreOpticController = null) { if (frozen) { return; } // record starting position and rotation for transitionCamera Vector3 camStartPos = cam.transform.position; Quaternion camStartRot = cam.transform.rotation; Vector3 relativeFacing = cam.transform.forward; Vector3 newGravDirection = _knifeController.GetGravVector(); bool fibreOpticWarp = _fibreOpticController != null; // Shift gravity if the difference between current gravity and surface normal is // above the threshold defined by warpGravShiftAngle float surfaceDiffAngle = Vector3.Angle(-transform.up, newGravDirection); bool gravityShift = (_shiftGravity && surfaceDiffAngle > warpGravShiftAngle && newGravDirection != Vector3.zero); if (gravityShift) { this.PostNotification(GravityWarpNotification, _knifeController.GetStuckObject()); } else { this.PostNotification(WarpNotification); } // rotate to face new direction at end of warp. // needed for gravity and fibreoptic warps if (gravityShift) { RotateToDirection(newGravDirection, relativeFacing); } else if (fibreOpticWarp) { RotateToDirection(currentGravVector, _fibreOpticController.GetExitDirection(), true); } // Determine transitionCamera end rotation Quaternion camEndRot = (gravityShift) ? transform.rotation : camStartRot; // Setup transitionCamera transCamController.Setup(cam.fieldOfView, camStartPos, _knifeController, cameraRelativePos, camStartRot, camEndRot, gravityShift, _fibreOpticController); cam.enabled = false; Freeze(); // Begin warp transition transCamController.StartTransition(); if (gravityShift) { GlobalGravityControl.TransitionGravity(newGravDirection, transCamController.GetDuration()); // Begin gravity shift countdown coroutine if (gravShiftTimerCoroutine != null) { StopCoroutine(gravShiftTimerCoroutine); } gravShiftTimerCoroutine = StartCoroutine("GravShiftCountdown"); } }
public void Init(KnifeController knifeController, float lodgeFactor) { this.knifeController = knifeController; this.lodgeFactor = lodgeFactor; }
void Start() { _chunkPlacer = GameObject.Find("ChunkPlacer").GetComponent <ChunkPlacer>(); _knifeController = GameObject.Find("Knife").GetComponent <KnifeController>(); _UIManager = GameObject.Find("Canvas").GetComponent <UIManager>(); }
// Use this for initialization void Start() { knifeController = GetComponent <KnifeController>(); }
void Start() { _knifeController = GameObject.Find("Knife").GetComponent <KnifeController>(); }
public void Dispose() { _tempController.GameOver -= EndGame; _tempController = null; GameObject.Destroy(_tempView.gameObject); }