Skip to main content

Bounds.intersect is bad, mkay?!

I was trying to check when enemy ships are getting out of screen to destroy objects (optimization). First version

Vector2 screenSize = new Vector3 (Screen.width, Screen.height, Mathf.Abs (Camera.main.transform.position.z));
Bounds screenBounds = new Bounds (new Vector2(0f,0f), screenSize);
Debug.Log ("Ship " + ship.renderer.bounds + "  Screen " + screenBounds);
if (!ship.renderer.bounds.Intersects (screenBounds))
   ship.Destroy ();
So apparently this operation is taking significant time to check, end up replacing with this

  Vector3 screenPos = Camera.main.WorldToScreenPoint( ship.transform.position ); 
  Vector3 screenSize = Camera.main.WorldToScreenPoint( ship.renderer.bounds.size);
  if (screenPos.x + screenSize.x < 0)
   ship.Destroy ();

Comments

devidnayana said…


I am very happy when read this blog post because blog post written in good manner and write on
good topic. Thanks for sharing valuable information.

School Information Management System,
Online Fee Payment Integration
College Management System

Message

Popular posts from this blog

Why Magento sucks?!

p.p1 {margin: 0.0px 0.0px 13.0px 0.0px; font: 13.0px Arial; color: #1022a3} p.p2 {margin: 0.0px 0.0px 13.0px 0.0px; font: 13.0px Arial} p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Arial} p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Arial; min-height: 15.0px} span.s1 {letter-spacing: 0.0px color: #000000} span.s2 {text-decoration: underline ; letter-spacing: 0.0px} span.s3 {letter-spacing: 0.0px} span.s4 {text-decoration: underline ; letter-spacing: 0.0px color: #1022a3} This post was inspired by  http://www.commercestyle.com/e-commerce/magneto-sucks I don't agree on everything that wrote there, I won't say that is so sucky and hard. It's childish way to say system is too complicated, read the f**king manual, omg is this so hard?! So from perspective technical guy that have a lot of finished high loaded projects on the back, I want to explain my "sucky" point about it.  1) The thing that bothers me for last few weeks is news about Magento acquir...

How to kill old Resque workers and don't loose your face

In first thought trivial problem, `god gem` is keeping your Resque workers busy and when you deploy it just ask `god` to kill them by: god remove {group_name}. This is prety common misunderstanding thinking that workers will stop running at same moment, some of them can even live forever trying to establish their life inside your production server and continiously eating memory. One of walkarounds looked like this: in resque.rake create new task namespace :resque task :restart => :environment do    pids = Resque.workers.map(&:worker_pids) || []    pids.uniq!    if pids.any?        system("sudo kill -QUIT #{pids.join(' ')}")        puts "killed: #{pids.join(' ')}"    else        puts "resque wasn't running: #{pids.join(' ')}"    end end end It worked fine till one moment when rake stopped running initilizers before task and that cause ugly(hard) to find error...