public void Kill(BodyController b) { int index = bodies.IndexOf(b); if (bodies.Count == 1) { GameManager.winner = (team == Team.Red) ? "Blue" : "Red"; GameManager.GameOver(); return; } bodies.RemoveAt(index); if (index == bodyIndex) { bodyIndex--; ChangeBody(); } else if (index < bodyIndex) { bodyIndex--; } audioSource.Play(); b.gameObject.GetComponent <SpriteRenderer>().enabled = false; b.gameObject.transform.Find("Quad").gameObject.SetActive(false); Destroy(b.gameObject, 3f); }
private BodyController GetNextController() { if(nextController == null) { nextController = (BodyController) nextBody.GetComponent(typeof(BodyController)); } return nextController; }
private BodyController GetBodyController() { if(bodyController == null) { bodyController = (BodyController) body.GetComponent(typeof(BodyController)); } return bodyController; }
// Use this for initialization void Start() { bodyController = GetComponent <BodyController>(); initAgent(); attackManager = GetComponent <AttackManager>(); //Destroy(this.GetComponent<CharacterController>()); }
//Vector De Interaccion private Vector3 Calculateinteraction() { //Obtengo Valores negativos y positivos en el vector de manera aleatoria Vector3 randomize = new Vector3((Random.value * 2) - 1, (Random.value * 2) - 1, (Random.value * 2) - 1); //Hacer el vector con magnitud 1 y conservando su direccion randomize.Normalize(); BodyController boidController = Controller.GetComponent <BodyController>(); //Posicion central del rebaño Vector3 flockCenter = boidController.flockCenter; //Velocidad promedio del rebaño Vector3 flockVelocity = boidController.flockVelocity; //Posicion del objeto donde iran Vector3 follow = chasee.transform.localPosition; //Darle los valores recogidos flockCenter = flockCenter - transform.localPosition; flockVelocity = flockVelocity - this.GetComponent <Rigidbody>().velocity; //Ubicacion del objeto a llegar follow = follow - transform.localPosition; //Devuelve velocidad de interaccion return(flockCenter + flockVelocity + follow * 2 + randomize * randomness); }
/** * 初始化 */ public void InitFunction(GameObject building, Vector3 position, MainController.FormFactorSideType sides, float platLength, float platWidth, float platHeight, float eaveColumnHeight, float goldColumnHeight, float mainRidgeHeightOffset, float allJijaHeight, List <Vector3> topFloorBorderList, int roofType, bool isStair, float rotateAngle = 0) { this.building = building; this.building.transform.parent = building.transform; this.rotateAngle = rotateAngle; this.sides = sides; platformCenter = position; platform = new GameObject("platform"); platform.transform.parent = this.building.transform; platform.transform.position = platformCenter; bodyCenter = platformCenter + (platHeight / 2.0f + eaveColumnHeight / 2.0f) * Vector3.up; body = new GameObject("body"); body.transform.parent = this.building.transform; roof = new GameObject("roof"); roof.transform.parent = this.building.transform; platformController = building.AddComponent <PlatformController>(); bodyController = building.AddComponent <BodyController>(); roofController = building.AddComponent <RoofController>(); //入口位置 //entraneIndexList.SetEntranceIndex(0); platformController.InitFunction(this, platWidth, platLength, platHeight, isStair, rotateAngle); bodyController.InitFunction(this, eaveColumnHeight, goldColumnHeight); roofController.InitFunction(this, bodyController.GetColumnStructTopPosList(bodyController.eaveCornerColumnList), topFloorBorderList, platWidth, eaveColumnHeight, mainRidgeHeightOffset, allJijaHeight, roofType); buildingHeight = Vector3.Distance(roofTopCenter, platformCenter) + platformController.platHeight / 2.0f; }
// Create the hierarchy that handles local transformations // and joints for a given body. private KineticHierarchyController BuildRobotBodyAttachment(KineticHierarchyController parent, XmlNode part_xml, XmlUtils.Defaults defaults) { string part_name = XmlUtils.GetString(part_xml, "name", string.Format("part_{0}", part_counter_)); part_counter_++; // Build the body and set local position/rotation/scale relative to parent. BodyController body = SceneUtils.InstantiateWithController <BodyController>(part_name); body.Initialize(parent, part_name, XmlUtils.GetVector3(part_xml, "pos", Vector3.zero), XmlUtils.GetRotation(part_xml, Quaternion.identity)); List <XmlNode> joint_nodes = XmlUtils.GetChildNodes(part_xml, "joint"); // Add all the joints in a hierarchy, one after another // (XML order is important). KineticHierarchyController last_game_object = body; for (int i = 0; i < joint_nodes.Count; ++i) { last_game_object = BuildJoint(last_game_object, part_name, i, joint_nodes[i], defaults); } return(last_game_object); }
public TurretUndeployingState(GameObject npc, CannonController[] cannonControllers, BodyController baseController, AnimationController animationController): base(npc) { stateID = StateID.UnDeploying; turretActor = npc.GetComponent<SuperTurret>(); this.cannonControllers = cannonControllers; this.baseController = baseController; this.animationController = animationController; }
public void StartCasting(GameObject ability, RaycastHit hit, GameObject sender) { AbilityObject = ability; Hit = hit; Sender = sender; SenderController = Sender.GetComponent <BodyController> (); StartPosition = Sender.transform.position; }
private BodyController GetNextController() { if (nextController == null) { nextController = (BodyController)nextBody.GetComponent(typeof(BodyController)); } return(nextController); }
private BodyController GetBodyController() { if (bodyController == null) { bodyController = (BodyController)body.GetComponent(typeof(BodyController)); } return(bodyController); }
private void LerpToPos(Team team, int index, Vector2 targetXY) { BodyController body = orderedMovers[index]; Vector3 startPos = moverPositions[index]; Vector3 targetPos = new Vector3(targetXY.x, targetXY.y, body.transform.position.z); body.transform.position = Vector3.Lerp(startPos, targetPos, 1 - timeUntilMove / GraceTime); }
public void MoveTailSegment() { BodyController tail = bodySegments[bodySegments.Count - 1]; tail.SetPosition(lastHeadPosition); bodySegments.RemoveAt(bodySegments.Count - 1); bodySegments.Insert(0, tail); }
// Use this for initialization void Start() { if (bodyController == null) { Debug.LogWarning("Transform no asignado"); bodyController = (BodyController)GameObject.FindObjectOfType(typeof(BodyController)); } transformBodyController = bodyController.gameObject.GetComponent <Transform> (); }
private void Start() { bodyController = GetComponent <BodyController>(); mainCamera = bodyController.cameraTrans.GetComponent <Camera>(); initialFOV = mainCamera.fieldOfView; sniperScopeImage.enabled = false; }
void RandomColorBody(BodyController theBody) { SpriteRenderer theBodySprite = theBody.GetComponent <SpriteRenderer>(); if (colorLenght < 50) { colorLenght += 5; } theBodySprite.color = new Color((theBodySprite.color.r * 255 + colorLenght) / 255, (theBodySprite.color.g * 255 + colorLenght - 5) / 255, (theBodySprite.color.b * 255 + colorLenght) / 255); }
public IController GetController() { ITransformable transf; string[] transformableNames = PrefabUtils.GetEntityAndComponentName(Transformable); if (transformableNames[0] == null) { transf = FatherEntity.SceneNodes[Transformable]; } else { transf = GameWorldManager.Instance.GetEntity(transformableNames[0]).SceneNodes[transformableNames[1]]; } switch (Type) { case ControllerType.BodyController: Body body; GameEntity ent; string[] bodyNames = PrefabUtils.GetEntityAndComponentName(Body); if (bodyNames[0] == null) { body = FatherEntity.PhysicsEntity.GetBody(Body); ent = FatherEntity; } else { ent = GameWorldManager.Instance.GetEntity(bodyNames[0]); body = ent.PhysicsEntity.GetBody(bodyNames[1]); } BodyController bc = new BodyController(transf, body, ent); return(bc); case ControllerType.LineJointController: Joint joint; string[] jointNames = PrefabUtils.GetEntityAndComponentName(Joint); if (jointNames[0] == null) { joint = FatherEntity.PhysicsEntity.GetJoint(Joint); } else { joint = GameWorldManager.Instance.GetEntity(jointNames[0]).PhysicsEntity.GetJoint(jointNames[1]); } LineJointController ljc = new LineJointController(transf, joint.BodyA, joint.BodyB); return(ljc); } return(new BodyController(null, null, null)); }
void Start() { bodyController = GetComponent <BodyController> (); CombatController.Instance.AddUnitToTeam(this); animator = GetComponent <Animator> (); navMeshAgent = GetComponent <NavMeshAgent> (); OnDeath += bodyController.Death; OnDeath += hpBarController.Death; OnDeath += Death; InitUnit(); }
/// <summary> /// Recibir la informacion del BodyController /// </summary> /// <param name="theController">The controller.</param> public void SetController(GameObject theController) { Controller = theController; BodyController boidController = Controller.GetComponent <BodyController>(); minVelocity = boidController.minVelocity; //Obtengo la minima velocidad del rebaño maxVelocity = boidController.maxVelocity; //Obtengo la maxima velocidad del rebaño randomness = boidController.randomness; chasee = boidController.chasee; inited = true; }
/*** Unity Methods ***/ void Start() { GameObject gameController = GameObject.FindGameObjectWithTag("GameController"); //TODO: Initialize Body Controller body = gameController.GetComponent(typeof(BodyController)) as BodyController; sound = gameController.GetComponent(typeof(SoundController)) as SoundController; SavedCameraPos = Camera.main.transform.position; SavedCameraZoom = Camera.main.orthographicSize; }
/////////////////////////////////////////////////////////////////////////////// void Start() { /* SpriteRenderer[] tRenderers = gameObject.GetComponentsInChildren<SpriteRenderer>(); foreach (SpriteRenderer tRend in tRenderers) { Vector2 tOffset = tRend.material.mainTextureOffset; tOffset.y += tRend.sortingOrder * 5.5f; tRend.material.mainTextureOffset = tOffset; }*/ m_tBody = gameObject.GetComponentInChildren<BodyController>(); }
//ToolBoxController tools; void Start() { GameObject gameController = GameObject.FindGameObjectWithTag("GameController"); //TODO: Initialize Body Controller bod = gameController.GetComponent(typeof(BodyController)) as BodyController; //TODO: Initialize ToolBox Controller toolBox = gameController.GetComponent(typeof(ToolBox)) as ToolBox; //Initializing Sound Engine sound = gameController.GetComponent(typeof(SoundController)) as SoundController; }
void Start() { m_tController = gameObject.GetComponentInParent<UnitController>(); m_tBody = gameObject.GetComponentInParent<BodyController>(); Renderer[] tFireEffects = gameObject.GetComponentsInChildren<Renderer>(); foreach (Renderer tEffect in tFireEffects) { if (tEffect.name == "Fire 1") m_tFireEffect1 = tEffect; else if (tEffect.name == "Fire 2") m_tFireEffect2 = tEffect; } }
// Update is called once per frame void Update() { ArrowKeyMovement(); if (Time.time > updateTime) { Vector3 oldPos = transform.position; transform.position += new Vector3(direction.x, direction.y, 0f) * stride; if (direction != prevDirection) { transform.rotation = Quaternion.Euler(new Vector3(0f, 0f, Mathf.Atan2(-direction.y, -direction.x) * 180f / Mathf.PI)); } updateTime = Time.time + 1f / speed; if (justAte) { bodies.Insert(0, Instantiate(bodyPrefab, oldPos, Quaternion.identity, gameController.transform)); bodies[0].GetComponent <BodyController>().direction = direction; justAte = false; speed += 0.5f; } else if (bodies.Count > 1) { for (int i = 0; i < bodies.Count; i++) { BodyController thisBody = bodies[i].GetComponent <BodyController>(); thisBody.UpdatePosition(); } for (int i = bodies.Count - 1; i > 0; i--) { BodyController thisBody = bodies[i].GetComponent <BodyController>(); BodyController headBody = bodies[i - 1].GetComponent <BodyController>(); thisBody.direction = headBody.direction; } bodies[0].GetComponent <BodyController>().direction = direction; } else { BodyController thisBody = bodies[0].GetComponent <BodyController>(); thisBody.UpdatePosition(); thisBody.direction = direction; } prevDirection = direction; } }
private void GameEntityCreateSceneNodes(GameEntity entity, Vector3 scale, IDictionary <string, object> parameters) { /* create main node */ SceneNode mainNode = new SceneNode(); /* rest of nodes */ foreach (MeshSceneNodePrefab scnp in _sceneNodesPrefab.Values) { SceneNode scn = scnp.GetSceneNode(parameters, entity); entity.SceneNodes.Add(scnp.Name, scn); mainNode.AddChild(scn); scn.SetScale(scn.GetScale() * scale); } foreach (ArrayMeshSceneNodePrefab ascnp in _arrayMeshSceneNodesPrefab.Values) { for (int i = ascnp.StartIndex; i <= ascnp.EndIndex; i++) { SceneNode scn = ascnp.GetSceneNode(parameters, entity); mainNode.AddChild(scn); scn.SetScale(scale); if (ascnp.Path != null && entity.PhysicsEntity.GetBodyFromPath(ascnp.Path, i) != null) { BodyController controller = new BodyController(scn, entity.PhysicsEntity.GetBodyFromPath(ascnp.Path, i), entity); entity.BodyControllers.Add(controller); FrameUpdateManager.Instance.Register(controller); } } } foreach (var cameraSceneNodePrefab in _cameraSceneNodesPrefab) { mainNode.AddAttachable( new CameraAttachable(cameraSceneNodePrefab.Value.LookingDirection, cameraSceneNodePrefab.Value.UpVector, cameraSceneNodePrefab.Value.Near, cameraSceneNodePrefab.Value.Far, cameraSceneNodePrefab.Value.Fov, cameraSceneNodePrefab.Value.AspectRatio) ); } /* finish main node */ SceneManager.Instance.RegisterSceneTree(mainNode); entity.MainNode = mainNode; }
private void initializeChildren() { for (int i = 0; i < transform.childCount; i++) { if (transform.GetChild(i).gameObject.CompareTag("PlayerHead")) { head = transform.GetChild(i).gameObject.GetComponent <HeadController>(); } else if (transform.GetChild(i).gameObject.CompareTag("PlayerBody")) { bodies = gameObject.transform.GetChild(i); } else if (transform.GetChild(i).gameObject.CompareTag("PlayerTail")) { tail = gameObject.transform.GetChild(i).gameObject.GetComponent <BodyController>(); } } }
// Use this for initialization void Start() { bodyController = GetComponent <BodyController>(); agentController = GetComponent <AgentMovementController>(); attackManager = GetComponent <AttackManager>(); animator = GetComponent <Animator>(); animator.speed = animationSpeed; enemyManager = GameObject.Find("ZombieSpawner").GetComponent <EnemyManager>(); float randomNum = Random.Range(0f, 1f); playerKiller = (randomNum > 0.7f) && !preStartEnemy; //Debug.Log("PLayer Killer: " + playerKiller.ToString() + "- " + randomNum.ToString()); //playerKiller = true; followPlayerOnSight = new FollowPlayerOnSight(this.gameObject, attackManager.meeleAttackRange - 0.5f); //attackFire = new AttackBarrier(this.gameObject, attackManager.meeleAttackRange - 0.5f, GameObject.Find("BonFire")); defaultTarget(); }
void SpawnUnit() { GameObject newUnit = Instantiate(unitPrefab, teamGroup); UnitController unitController = newUnit.GetComponent <UnitController> (); unitController.unitCharacteristics = unitCharacteristics; unitController.InitUnit(); BodyController bodyController = newUnit.GetComponent <BodyController> (); bodyController.SetBodyMaterial(teamColorMaterial); newUnit.transform.position = transform.position; if (finish == null) { Debug.LogError(gameObject.name + " finish is null."); } else { unitController.finish = finish; //unitController.SetMovementTarget (finish); } if (flag == null) { Debug.LogError(gameObject.name + " flag is null."); } else { unitController.flag = flag; } if (bodyPartsTransform == null) { Debug.LogError(gameObject.name + " bodyPartsTransform is null."); } else { bodyController.bodyPartsTransform = bodyPartsTransform; } unitController.spawner = transform; numUnitsToSpawn--; if (OnUnitSpawned != null) { OnUnitSpawned(unitController); } }
public void SetTrackingData(Animator _Animator, HumanBodyBonesTrackData _BoneData, Animator _Compare, BodyController _Controller) { CurrentAnimator = _Animator; CurrentBoneData = _BoneData; AnimatorToCompareTo = _Compare; CurrentBodyController = _Controller; //J.transform.SetParent(transform); if (CurrentBoneData.ShowJointInfo) { GameObject J = Instantiate(CurrentBodyController.JointInfoPrefab, transform.position, Quaternion.identity); JI = J.GetComponent <JointInformation> (); JI.UpdateInformation(CurrentBoneData.NameOverWrite != "" ? CurrentBoneData.NameOverWrite : CurrentBoneData.Joint.ToString()); transform.position = CurrentAnimator.GetBoneTransform(CurrentBoneData.Joint).position; JI.transform.position = transform.position; JointInfoStartingPos = JI.transform.position; JI.transform.position = JointInfoStartingPos + CurrentBoneData.JointInfoOffsetPos; } }
private void GameEntityCreateControllers(GameEntity entity) { foreach (ControllerPrefab cp in _controllersPrefab.Values) { cp.FatherEntity = entity; switch (cp.Type) { case ControllerType.BodyController: BodyController bc = cp.GetController() as BodyController; entity.BodyControllers.Add(bc); FrameUpdateManager.Instance.Register(bc); break; case ControllerType.LineJointController: LineJointController ljc = cp.GetController() as LineJointController; entity.LineJointControllers.Add(ljc); FrameUpdateManager.Instance.Register(ljc); break; } } }
//private Animator playerAnimator; //private Animator playerArrowAnimator; //private Vector3 arrowOffset; //private GameObject arrowBone; //private GameObject playerArrow; //private Vector3 playerArrowOffset = new Vector3(0, 0, 1f); //private GameObject handObj; //private GameObject arrowModel; //private GameObject playerArrow; void Start() { bodyController = GetComponent <BodyController>(); //playerAnimator = GameObject.Find("PlayerModel").GetComponent<Animator>(); //arrowModel = GameObject.Find("ArrowModel"); //playerArrowAnimator = playerAnimator.GetComponent<Animator>(); //playerAnimator.speed = 0.25f; //playerArrowAnimator.speed = 0.25f; //playerArrow = GameObject.Find("PlayerArrow"); //playerArrow.SetActive(false); lockCursor(); Physics.IgnoreLayerCollision(LayerMask.NameToLayer("PlayerLayer"), LayerMask.NameToLayer("DoorLayer")); //handObj = GameObject.Find("Hand_R"); //arrowBone = GameObject.Find("ArrowBoneR"); //arrowOffset = handObj.transform.position - arrowObj.transform.position; }
private void OnTriggerEnter(Collider other) { if (other.gameObject.tag == "Projectile") { //Explode(); LaserBoltController laserBolt = other.gameObject.GetComponentInParent <LaserBoltController>(); if (laserBolt) { laserBolt.Explode(); } } else if (other.gameObject.tag == "Player") { Explode(); BodyController controller = other.gameObject.GetComponent <BodyController>(); if (controller) { controller.TakeDamage(10); } } }
// Start is called before the first frame update void Start() { body = transform.Find("Body").gameObject; bodyController = body.GetComponent <BodyController>(); pAnim = body.GetComponent <Animator>(); rbPlayer = GetComponent <Rigidbody>(); dirt = transform.Find("Dirt").gameObject; mainCamera = GameObject.Find("Main Camera"); swordObject = transform.Find("Sword").gameObject; swordController = swordObject.GetComponent <SwordController>(); swordController.pScript = this; sound = GetComponent <AudioSource>(); hpView = GameObject.Find("HP View").GetComponent <TextMeshProUGUI>(); killsView = GameObject.Find("Kills View").GetComponent <TextMeshProUGUI>(); Physics.gravity = Menu.gravity * gravityModifier; updateView(); //initialSpeed = speed; SetBounds(); }
private IEnumerator <IYieldInstruction> BuildNpcs ( Jobs job, FashionLevel level, IEnumerable <XmlNode> modelsXml, Hangout.Shared.Action onBuildingNpcsComplete ) { // Key = FBID, Value = name, assets for model Dictionary <long, Pair <string, IEnumerable <Asset> > > modelInfos = new Dictionary <long, Pair <string, IEnumerable <Asset> > >(); uint gettingAssets = 0; ClientAssetRepository repo = GameFacade.Instance.RetrieveProxy <ClientAssetRepository>(); foreach (XmlNode modelXml in modelsXml) { string name; XmlNode fbidNode = modelXml.SelectSingleNode(".//@FBID"); if (fbidNode == null) { throw new Exception("modelXml doesn't have an FBID attribute: " + modelXml.OuterXml); } long uniqueId = long.Parse(fbidNode.InnerText); name = modelXml.Attributes["FirstName"].InnerText; // +" " + modelXml.Attributes["LastName"].InnerText; // Only grab the avatars we don't already have loaded if (!JobHasNpc(job, uniqueId) && !modelInfos.ContainsKey(uniqueId)) { gettingAssets++; List <AssetInfo> assetInfos = new List <AssetInfo>(); foreach (AssetInfo assetInfo in ClientAssetInfo.Parse(modelXml)) { if (!mIgnoredAssets.Contains(assetInfo.AssetSubType)) { assetInfos.Add(assetInfo); } } repo.GetAssets <Asset>(assetInfos, delegate(IEnumerable <Asset> modelAssets) { gettingAssets--; if (!modelInfos.ContainsKey(uniqueId)) { modelInfos.Add(uniqueId, new Pair <string, IEnumerable <Asset> >(name, modelAssets)); } else { Console.WriteLine("Attempted to download model info for " + uniqueId + " twice at the same time."); } }); } } yield return(new YieldWhile(delegate() { return gettingAssets != 0; })); int spreadFrames = 25; List <Pair <long, INpc> > newNpcs = new List <Pair <long, INpc> >(); foreach (KeyValuePair <long, Pair <string, IEnumerable <Asset> > > assets in modelInfos) { // This object will be cleaned up by the fashion model GameObject displayObject = (GameObject)GameObject.Instantiate(mRigPrototype); displayObject.SetActiveRecursively(false); HeadController headController = new HeadController(GameObjectUtility.GetNamedChildRecursive("Head", displayObject)); BodyController bodyController = new BodyController(displayObject); bodyController.SetAssets(assets.Value.Second); headController.SetAssets(assets.Value.Second); bodyController.UpdateAssetsOverFrames(spreadFrames); headController.UpdateAssetsOverFrames(spreadFrames); INpc newNpc; if (job == Jobs.Model) { newNpc = new FashionModel(assets.Value.First, level, displayObject, headController, bodyController); } else { newNpc = new StationWorker(assets.Value.First, displayObject, headController, bodyController); } CharacterMediator.AddAnimationClipToRig(newNpc.DisplayObject, "Avatar/F_walk_normal_loop"); CharacterMediator.AddAnimationClipToRig(newNpc.DisplayObject, "Avatar/F_idle_normal_loop"); newNpcs.Add(new Pair <long, INpc>(assets.Key, newNpc)); } yield return(new YieldWhile(delegate() { return spreadFrames-- != 0 || !mModelAnimationsDownloaded; })); foreach (Pair <long, INpc> npc in newNpcs) { switch (job) { case Jobs.Hair: mHairStationWorkers.AddNpc(npc.First, npc.Second); break; case Jobs.Makeup: mMakeupStationWorkers.AddNpc(npc.First, npc.Second); break; case Jobs.Model: FashionModel newModel = (FashionModel)npc.Second; newModel.SetImpatientSitIdle(mImpatientSitIdle); newModel.SetSittingIdle(mSittingIdle); newModel.SetMediumHurried(mMediumHurried, mMediumHurriedSpeed); newModel.SetCatWalk(mCatWalk, mCatWalkSpeed); mFashionModels.AddNpc(npc.First, npc.Second); break; case Jobs.Seamstress: mSewingStationWorkers.AddNpc(npc.First, npc.Second); break; } } if (onBuildingNpcsComplete != null) { onBuildingNpcsComplete(); } }
// On hit, we talk to the owning parent void OnMouseDown() { // Debug.Log("The parent was clicked! Tag: " + tag + "Name: " + name ); switch (tag) { //Body parts: case "Body": //Tell the body that the current Tool has touched it BodyPartType part = BodyController.GetBodyPart(name); bod.applyCure(toolBox.selectedTool, part); break; case "Tool": ToolBox.Tool oldTool = toolBox.selectedTool; toolBox.selectTool(name); if (toolBox.selectedTool == oldTool) { //Debug.Log("Yes we just got the same thing."); return; } if (toolBox.selectedTool != ToolBox.Tool.None) { if (isToolSelected) { activeTool.transform.position = oldPoint; activeTool.GetComponent <Collider>().enabled = true; activeTool = null; } activeTool = GameObject.Find(name) as GameObject; activeTool.GetComponent <Collider>().enabled = false; oldPoint = activeTool.transform.position; sound.playToolPickupEffect(toolBox.selectedTool); isToolSelected = true; } else { if (isToolSelected) { isToolSelected = false; activeTool.transform.position = oldPoint; activeTool.GetComponent <Collider>().enabled = true; activeTool = null; } } break; case "Background": if (isToolSelected) { isToolSelected = false; activeTool.transform.position = oldPoint; activeTool.GetComponent <Collider>().enabled = true; activeTool = null; } toolBox.selectTool("None"); break; } // Communicate to owning script: }