public Object3() { Sprite.TextureSource = "texture"; EditorPath = "Colliders"; Mass = 32; for (int i = 0; i < 50; i++) { //springs.Add(new Spring()); } // Speed = random_range(0.5, 2); // Friction = 0.05; int index = irandom(50); //springs[index].Splash(10); endPos = new Vector2(irandom_range(-100, 100), irandom_range(-100, 100)); // This creates a new circle collider // setting some properties cc = new ColliderCircle(); cc.Radius = 64; cc.Name = "main"; cc.GameObject = this; // Add collider to the list of active colliders Colliders.Add(cc); EditorOptions = new[] { "I can have", "My own options", "Here" }; // This will trigger script "MyCollision" when our collider main collides with collider "main" of any "Object3" // last arg ensures that the check will be triggered on each frame without explicit ask for it RegisterCollider(cc, typeof(Object3), "main", typeof(ColliderRectangle), MyCollision, true); }
public void ApplyProperties(Component component, GameObject root) { var path = PropertyTransformer.TransformToStringPath(component); using (var serializer = new SerializedObject(component)) { ApplyArrayToProperty(serializer.FindProperty("m_Colliders"), Colliders.Select(w => ToActualObject(path, w, root)).ToList()); serializer.FindProperty("m_Damping").floatValue = Damping; serializer.FindProperty("m_DampingDistrib").animationCurveValue = DampingDistrib; serializer.FindProperty("m_DistanceToObject").floatValue = DistanceToObject; serializer.FindProperty("m_DistantDisable").boolValue = DistantDisable; serializer.FindProperty("m_Elasticity").floatValue = Elasticity; serializer.FindProperty("m_ElasticityDistrib").animationCurveValue = ElasticityDistrib; serializer.FindProperty("m_EndLength").floatValue = EndLength; serializer.FindProperty("m_EndOffset").vector3Value = EndOffset; ApplyArrayToProperty(serializer.FindProperty("m_Exclusions"), Exclusion.Select(w => ToActualObject(path, w, root)).ToList()); serializer.FindProperty("m_Force").vector3Value = Force; serializer.FindProperty("m_FreezeAxis").enumValueIndex = FreezeAxis; serializer.FindProperty("m_Gravity").vector3Value = Gravity; serializer.FindProperty("m_Inert").floatValue = Inert; serializer.FindProperty("m_InertDistrib").animationCurveValue = InertDistrib; serializer.FindProperty("m_Radius").floatValue = Radius; serializer.FindProperty("m_RadiusDistrib").animationCurveValue = RadiusDistrib; serializer.FindProperty("m_ReferenceObject").objectReferenceValue = ToActualObject(path, ReferenceObject, root); serializer.FindProperty("m_Root").objectReferenceValue = ToActualObject(path, RootReference, root); serializer.FindProperty("m_Stiffness").floatValue = Stiffness; serializer.FindProperty("m_StiffnessDistrib").animationCurveValue = StiffnessDistrib; serializer.FindProperty("m_UpdateMode").enumValueIndex = UpdateMode; serializer.FindProperty("m_UpdateRate").floatValue = UpdateRate; serializer.ApplyModifiedPropertiesWithoutUndo(); } }
/// <summary> /// Attempts to remove a Collider from the primary collection, if that fails then an attempt will be made to /// remove it from the fallback collection. /// </summary> /// <param name="collider">The Collider to be removed.</param> /// <param name="primary">The first collection to attempt to remove the Collider from.</param> /// <param name="fallback">Attempt to remove the Collider from this if the primary fails.</param> private void RemoveCollider(Collider collider, Colliders primary, Colliders fallback) { if (!primary.Remove(collider)) { fallback.Remove(collider); } }
/// <summary> /// Creates and displays a mesh that represents a connecting pipe between the source and the /// target parts. /// </summary> protected virtual void CreateLinkPipe() { var nrmTexture = pipeNormalsTexturePath != "" ? GetTexture(pipeNormalsTexturePath, asNormalMap: true) : null; var material = CreateMaterial(GetTexture(pipeTexturePath), mainTexNrm: nrmTexture, overrideShaderName: shaderNameOverride, overrideColor: colorOverride); linkPipe = Meshes.CreateCylinder(pipeDiameter, 1f, material, partModelTransform, colliderType: Colliders.PrimitiveCollider.Shape); Colliders.UpdateColliders(linkPipe, isPhysical: pipeColliderIsPhysical); if (pipeColliderIsPhysical) { CollisionManager.IgnoreCollidersOnVessel( vessel, linkPipe.GetComponentsInChildren <Collider>()); // TODO(ihsoft): Ignore the parts when migrated to the interfaces. Colliders.SetCollisionIgnores(sourceTransform.root, targetTransform.root, true); } linkPipeMR = linkPipe.GetComponent <Renderer>(); // To speedup OnUpdate() handling. SetupPipe(linkPipe.transform, sourceJointNode.pipeAttach.position, targetJointNode.pipeAttach.position); RescaleTextureToLength(linkPipe, pipeTextureSamplesPerMeter, renderer: linkPipeMR, scaleRatio: 1 / stretchRatio); // Let the part know about the new mesh so that it could be properly highlighted. part.RefreshHighlighter(); }
void Update() { correct = playerCollision.correct; //when triggered fills an array of bridges and an array of all letter grid pieces if (LoadQuestion.trigger) { Colliders.trig = true; LoadQuestion.trigger = false; fillTextArray(); Bridges = GameObject.FindGameObjectsWithTag("Bridge"); } //when the player asnwers correctly the bridge appears, the board turns blank and the next question is loaded if (playerCollision.correct == true /*|| Input.GetKeyDown("space")*/) { playerCollision.correct = false; rend = Bridges[bridgeCount].GetComponent <Renderer>(); Colliders.RemoveCollider(bridgeCount); rend.enabled = true; StopColliders(); bridgeCount++; corrAns++; questionLevel++; Load.GetQuestion(questionLevel); answerLocation(); } }
public Map(byte[] content) { using (MemoryStream stream = new MemoryStream(content)) { using (BinaryReader reader = new BinaryReader(stream)) { Colliders = ReadTiles(reader); DimensionX = Colliders.GetUpperBound(0) + 1; DimensionY = Colliders.GetUpperBound(1) + 1; Width = DimensionX - 1; Height = DimensionY - 1; Tiles1 = ReadTiles(reader); Tiles2 = ReadTiles(reader); Tiles3 = ReadTiles(reader); Tiles4 = ReadTiles(reader); MapWeather = ReadString(reader); reader.ReadInt16(); reader.ReadInt16(); IsOutside = reader.ReadByte() != 0; reader.ReadByte(); Region = ReadString(reader); Links = new bool[DimensionX, DimensionY]; int linkCount = reader.ReadInt16(); for (int i = 0; i < linkCount; ++i) { int x = reader.ReadInt16(); int y = reader.ReadInt16(); Links[x, y] = true; } int npcCount = reader.ReadInt16(); Npcs = new List <Npc>(); OriginalNpcs = new List <Npc>(); for (int i = 0; i < npcCount; ++i) { string npcName = ReadString(reader); int x = reader.ReadInt16(); int y = reader.ReadInt16(); int direction = reader.ReadByte(); int losLength = reader.ReadByte(); int type = reader.ReadInt16(); string path = ReadString(reader); bool isBattler = reader.ReadInt16() != 0; int npcId = reader.ReadInt16(); reader.ReadInt16(); OriginalNpcs.Add(new Npc(npcId, npcName, isBattler, type, x, y, DirectionExtensions.FromNumber(direction), losLength, path)); } } } }
public SturdyCrate() { name = Name; sideall = "planks"; categories = new List<string>() { CommonCategories.Essential, CommonCategories.Storage, CommonCategories.Crate, "ba", nameof(TimePeriod.StoneAge), GameSetup.NAMESPACE }; isSolid = true; colliders = new Colliders() { collidePlayer = true, collideSelection = true, boxes = new List<Colliders.Boxes>() { new Colliders.Boxes(new List<float>(){ 0.5f, 0.5f, -0.4f }, new List<float>(){ -0.5f, -0.5f, -0.5f }), new Colliders.Boxes(new List<float>(){ 0.5f, 0.5f, 0.5f }, new List<float>(){ -0.5f, -0.5f, 0.4f }), new Colliders.Boxes(new List<float>(){ -0.4f, 0.5f, 0.5f }, new List<float>(){ -0.5f, -0.5f, -0.5f }), new Colliders.Boxes(new List<float>(){ 0.5f, 0.5f, 0.5f }, new List<float>(){ 0.4f, -0.5f, -0.5f }), new Colliders.Boxes(new List<float>(){ 0.5f, -0.4f, 0.5f }, new List<float>(){ -0.5f, -0.5f, -0.5f }) } }; onPlaceAudio = "woodPlace"; onRemoveAudio = "woodDeleteLight"; icon = GameSetup.Textures.GetPath(TextureType.icon, nameof(TimePeriod.StoneAge) + "/" + "SturdyCrate.png"); mesh = GameSetup.MESH_PATH + "SturdyCrate.ply"; }
/// <summary> /// Removes dead objects /// </summary> private void RemoveObjects() { if (vehiclesToRemove.Count > 0) { foreach (GameObject go in vehiclesToRemove) { gameObjectsToRemove.Add(go); } UpdatePlayerAmount(); } if (gameObjectsToRemove.Count > 0) { foreach (var go in gameObjectsToRemove) { if (go.GetComponent("Collider") is Collider collider) { lock (colliderKey) { Colliders.Remove(collider); } } gameObjects.Remove(go); } gameObjectsToRemove.Clear(); } }
public oBallStatic() { EditorPath = "Collisions"; ColliderCircle cr = new ColliderCircle(this); cr.Position = Position; cr.Radius = 64; cr.Name = "Main"; cr.GameObject = this; Colliders.Add(cr); box1 = new DarkCheckBox() { Text = "On", AutoSize = true }; box1.CheckStateChanged += box1event; box2 = new DarkCheckBox() { Text = "Off", AutoSize = true }; box2.CheckStateChanged += box2event; EditorProperties = new Control[3]; EditorProperties[0] = new DarkLabel() { Text = "Toggle particles", AutoSize = true }; EditorProperties[1] = box1; EditorProperties[2] = box2; }
protected virtual void OnLoadObjectColliders() { var colliders = GetComponentsInChildren <Collider>(); Hitbox = GetComponentInChildren <Hitbox>(); if (Hitbox == null) { foreach (var c in colliders) { var hitbox = c.GetComponent <Hitbox>(); if (hitbox == null) { continue; } if (Hitbox != null) { Debug.LogWarning( $"There is more than one Hitbox in this model ({name}) with may cause problems with collision detection.", this); continue; } Hitbox = hitbox; } } Colliders.AddRange(colliders); }
void OnTriggerEnter2D(Collider2D col) { int temp = Colliders.getCurrentMap(); Colliders.SetCurrentMap(8); Colliders.SetLastMap(temp); }
void OnTriggerEnter2D(Collider2D col) { print("1111"); int temp = Colliders.getCurrentMap(); Colliders.SetCurrentMap(3); Colliders.SetLastMap(temp); }
/// <summary> /// Add a collider to the entity. /// </summary> /// <param name="c"></param> public T AddCollider <T>(T c) where T : Collider { Colliders.Add(c); c.Entity = this; c.Added(); Scene?.AddColliderInternal(c); return(c); }
public void Dispose() { Springs.Dispose(); Joints.Dispose(); BlittableTransforms.Dispose(); Colliders.Dispose(); Logics.Dispose(); }
void Reset() { // default shape Colliders.Add(new VRM10SpringBoneCollider { ColliderType = VRM10SpringBoneColliderTypes.Capsule, Radius = 0.1f }); }
/// <inheritdoc/> protected override void SetCollisionIgnores(Part otherPart, bool ignore) { if (pipeTransform != null) { Colliders.SetCollisionIgnores(pipeTransform, otherPart.transform, ignore); } Colliders.SetCollisionIgnores(sourceJointNode.rootModel, otherPart.transform, ignore); Colliders.SetCollisionIgnores(targetJointNode.rootModel, otherPart.transform, ignore); }
private void TryInteract() { if (InputManager.Interact && interactables.Count > 0) { var closest = interactables.OrderBy(x => x.Collider.Distance(Colliders.First()).distance).First(); closest.Interact(); animator.SetTrigger("Poke"); } }
private void Start() { _rbBall = ball.GetComponent <Rigidbody>(); _trBall = ball.GetComponent <Transform>(); _trPole = pole.GetComponent <Transform>(); _ballColliders = ball.GetComponent <Colliders>(); _poleDefaultPosition = _trPole.position; _poleDefaultRotation = _trPole.rotation; _ballDefaultPosition = _trBall.localPosition; }
/// <summary> /// Adds a collider to the world if it doesn't already exist. /// </summary> /// <param name="_collider"></param> public void AddCollider(ABCollider _collider) { if (Colliders.Contains(_collider)) { Debug.LogWarning("Can't add duplicate collider!"); return; } Colliders.Add(_collider); }
/// <inheritdoc/> protected override void UpdateColliderOverrides() { if (pipeTransform != null) { Colliders.UpdateColliders(pipeTransform.gameObject, isEnabled: isPhysicalCollider); } Colliders.UpdateColliders( sourceJointNode.rootModel.gameObject, isEnabled: isPhysicalCollider); Colliders.UpdateColliders( targetJointNode.rootModel.gameObject, isEnabled: isPhysicalCollider); }
public oPlayer() { Sprite.TextureSource = "elves2"; EditorPath = "Actors"; ImageSpeed = 0.01f; bodyCollider = new ColliderRectangle(this) { Collision = new RectangleF(16, 48, 32, 16), AttachToRoot = true, Name = "bodyCollider" }; Colliders.Add(bodyCollider); }
/// <summary> /// Add a collider to the entity. /// </summary> /// <param name="c"></param> public T AddCollider <T>(T c) where T : Collider { Colliders.Add(c); c.Entity = this; c.Added(); if (Scene != null) { Scene.AddColliderInternal(c); } return(c); }
private void Start() { rb_ball = ball.GetComponent <Rigidbody>(); tr_ball = ball.GetComponent <Transform>(); tr_pole = pole.GetComponent <Transform>(); _ballColliders = ball.GetComponent <Colliders>(); pole_position = tr_pole.position; pole_rotation = tr_pole.rotation; shootPositionRange = shootPositionRange / 2; KickInTheBall(); }
public oPlayer() { Sprite.TextureSource = "elves2"; EditorPath = "Colliders"; ImageSpeed = 0.01; Colliders.Add(new ColliderRectangle() { Collision = new RectangleF(16, 48, 32, 16) }); }
/// <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 oBrick() { EditorPath = "Actors"; ColliderRectangle cr = new ColliderRectangle(this); cr.Name = "MainCollider"; cr.GameObject = this; cr.Collision = new RectangleF(0, 0, 64, 32); Colliders.Add(cr); }
/// <summary> /// Remove the collider from the entity. /// </summary> /// <param name="c"></param> public T RemoveCollider <T>(T c) where T : Collider { if (Colliders.Contains(c)) { Colliders.Remove(c); c.Removed(); c.Entity = null; Scene?.RemoveColliderInternal(c); } return(c); }
public oGeorgeNew() { EditorPath = "Actors"; Sprite.TextureSource = "george"; bodyCollider = new ColliderRectangle(this); bodyCollider.Collision = new RectangleF(0, 0, 48, 48); bodyCollider.GameObject = this; bodyCollider.Name = "main"; Colliders.Add(bodyCollider); }
public oSolidMask() { EditorPath = "Solid"; Sprite.TextureSource = "texture"; Sprite.Texture = sprite_get("texture"); cr.Collision = new RectangleF(0, 0, 32, 32); cr.Name = "main"; cr.GameObject = this; cr = new ColliderRectangle(this); Colliders.Add(cr); }
public void Dispose() { if (IsDisposed) { return; } IsDisposed = true; Springs.Dispose(); Joints.Dispose(); BlittableTransforms.Dispose(); Colliders.Dispose(); Logics.Dispose(); }
public Bullet(int shape = 0, int collider = 0, float uniformScale = 0.5f, float xScale = 1f, float yScale = 1f, float zScale = 1f, bool isRigid = true, float mass = 1f, float drag = 0f, float angularDrag = 0.05f, bool useGravity = true) { this.shape = (Shapes)shape; this.collider = (Colliders)collider; this.uniformScale = uniformScale; this.xScale = uniformScale*xScale; this.yScale = uniformScale*yScale; this.zScale = uniformScale*zScale; this.isRigid = isRigid; this.mass = mass; this.drag = drag; this.angularDrag = angularDrag; this.useGravity = useGravity; }
void collider_onCollidionEnded(Colliders.CollisionInfo info) { collisions.Remove(info); OnCollisionsChanged(); }
void collider_onCollisionStarted(Colliders.CollisionInfo info) { collisions.Add(info); OnCollisionsChanged(); }
void collider_onCollisionStarted(Colliders.CollisionInfo info) { if (info.Collider1 == collider && info.Collider2.Group.Name == "Blocker") { Move(-curTickMovement); } if (info.Collider2 == collider && info.Collider1.Group.Name == "Blocker") { Move(-curTickMovement); } }