/// <summary> /// For meshes... /// </summary> /// <param name="assetLoaderContext"></param> public void OnModelLoaded(object sender, ImportedMeshEventArgs args) { if (args.Name != this.GetId()) { return; } bool outlineWasHighlighted = outlineOnClick.Highlighted; if (Model != null) { outlineOnClick.UnHighlight(); outlineOnClick.ClearRenderers(); Model.SetActive(false); Destroy(Model); } Model = args.RootGameObject; Model.gameObject.transform.parent = Visual.transform; Model.gameObject.transform.localPosition = Vector3.zero; Model.gameObject.transform.localRotation = Quaternion.identity; gameObject.GetComponent <BindParentToChild>().ChildToBind = Model; foreach (Renderer child in Model.GetComponentsInChildren <Renderer>(true)) { child.gameObject.AddComponent <OnClickCollider>().Target = gameObject; child.gameObject.AddComponent <MeshCollider>(); } aoRenderers.Clear(); Colliders.Clear(); aoRenderers.AddRange(Model.GetComponentsInChildren <Renderer>(true)); Colliders.AddRange(Model.GetComponentsInChildren <MeshCollider>(true)); outlineOnClick.InitRenderers(aoRenderers); outlineOnClick.InitMaterials(); //transparent = false; //needs to be set before 1st call of SetVisibility after model loading SetVisibility(visibility, forceShaderChange: true); if (outlineWasHighlighted) { outlineOnClick.Highlight(); if (SelectorMenu.Instance.ManuallySelected) { DisplayOffscreenIndicator(true); } } MeshImporter.Instance.OnMeshImported -= OnModelLoaded; }
public void Reset() { _position = __DefaultPosition; Position = __DefaultPosition; PositionPrevious = __DefaultPosition; ImageAngle = __DefaultImageAngle; ImageScale = __DefaultImageScale; Speed = 0; Direction = __DefaultDirection; ImageIndex = __DefaultImageIndex; ImageAlpha = __DefaultImageAlpha; Colliders.Clear(); }
public void FixedUpdate() { if (this.IsDead || Global.GameOver) { Die(); return; } Colliders.Clear(); if ((Vector3.Distance(transform.position, TargetPos) >= 0.1) && (TargetPosDesignated)) { LookAtPosition(TargetPos); transform.position = Vector3.MoveTowards(transform.position, TargetPos, Speed * Time.fixedDeltaTime); if (transform.GetComponent<CircleCollider2D>().OverlapCollider(TurretFilter, Colliders) > 0) { WeaponRange = BaseWeaponRange * 3f; } else if (transform.GetComponent<CircleCollider2D>().OverlapCollider(WallFilter, Colliders) > 0) { WeaponRange = BaseWeaponRange * 1.5f; } else { WeaponRange = BaseWeaponRange; } } else { if (EnemyTarget == null || Vector3.Distance(transform.position, EnemyTarget.position) > WeaponRange || !EnemyTarget.gameObject.activeSelf) { FindNewTarget("Enemy"); } if (EnemyTarget != null) { LookAtPosition(EnemyTarget.position); FireOnTarget(EnemyFilter, true); } } if (MyBeamLineRenderer != null) { if (beamused) { beamused = false; } else { MyBeamLineRenderer.enabled = false; MyBeamEmitter.Stop(true); } } //if (EnemyTarget != null) //{ // if (Vector3.Distance(transform.position, EnemyTarget.position) <= WeaponRange) // { // FireOnTargetRanged(); // transform.eulerAngles = new Vector3(0, 0, Vector3.Angle(transform.position, EnemyTarget.position)); // } // transform.position = Vector3.MoveTowards(transform.position, TargetPos, Speed * Time.fixedDeltaTime); // transform.eulerAngles = new Vector3(0, 0, Vector3.Angle(transform.position, TargetPos)); //} //else //{ // transform.position = Vector3.MoveTowards(transform.position, TargetPos, Speed * Time.fixedDeltaTime); // transform.eulerAngles = new Vector3(0, 0, Vector3.Angle(transform.position, TargetPos)); //} }